React Native 组件之DrawerLayoutAndroid(抽屉)

前端之家收集整理的这篇文章主要介绍了React Native 组件之DrawerLayoutAndroid(抽屉)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. /**
  2. * Created by YiBing on 2017/5/4.
  3. */
  4.  
  5. import React,{Component} from 'react';
  6. import {
  7. StyleSheet,Text,View,TouchableOpacity,ToastAndroid,DrawerLayoutAndroid,TextInput,} from 'react-native';
  8.  
  9. export default class DrawerLayoutAndroidDemo extends Component {
  10. render() {
  11. var navigationView = (
  12. <View style={{flex: 1,alignItems:'center'}}>
  13. <Text style={{width:'100%',textAlign:'center',marginTop:20}}>相册</Text>
  14. <Text style={{width:'100%',marginTop:20}}>账号信息</Text>
  15. <Text style={{width:'100%',marginTop:20}}>版本更新</Text>
  16. <Text style={{width:'100%',marginTop:20}}>关于</Text>
  17. <TouchableOpacity onPress={() => {this.drawer.closeDrawer()}}>
  18. <Text style={{width:'100%',marginTop:20}}>关闭抽屉</Text>
  19. </TouchableOpacity>
  20. </View>
  21. );
  22. return (
  23. /*
  24. * 抽屉布局(DrawerLayoutAndroid),属性如下:
  25. * 1.宽度--drawerWidth,类型:number
  26. * 2.背景颜色--drawerBackgroundColor,类型:rgba
  27. * 3.锁定模式--drawerLockMode,类型:enum('unlocked','locked-closed','locked-open')
  28. * unlocked (默认值),抽屉可以响应打开和关闭的手势操作。
  29. * locked-closed,抽屉将保持关闭,不可用手势打开。
  30. * locked-open,抽屉将保持打开,不可用手势关闭
  31. * 无论抽屉处于何种状态,都可以调用openDrawer/closeDrawer这两个方法打开和关闭
  32. * 4.抽屉位置(从屏幕哪边滑出,左边还是右边)--drawerPosition,类型:enum(DrawerConsts.DrawerPosition.Left,DrawerConsts.DrawerPosition.Right)
  33. * 5.在拖动的过程中是否隐藏软键盘--keyboardDismissMode,类型:enum('none',"on-drag")
  34. * none (默认值),拖拽不会隐藏软键盘;
  35. * on-drag 当拖拽开始的时候隐藏软键盘
  36. *
  37. * 抽屉布局(DrawerLayoutAndroid),回调函数如下:
  38. * 1.抽屉被关闭之后调用此回调函数--onDrawerClose
  39. * 2.抽屉被打开之后调用此回调函数--onDrawerOpen
  40. * 3.抽屉产生交互的时候调用此回调函数--onDrawerSlide
  41. * 4.抽屉的状态变化时调用此回调函数--onDrawerStateChanged,有三种状态:
  42. * idle(空闲),表示现在导航条上没有任何正在进行的交互。
  43. * dragging(拖拽中),表示用户正在与导航条进行交互。
  44. * settling(停靠中),表示用户刚刚结束与导航条的交互,导航条正在结束打开或者关闭的动画。
  45. * 5.渲染一个可以从屏幕一边拖入的导航视图--renderNavigationView
  46. * 6.statusBarBackgroundColor
  47. *
  48. * 抽屉布局(DrawerLayoutAndroid),Methods如下:
  49. * 1.打开抽屉--openDrawer()
  50. * 2.关闭抽屉--closeDrawer()
  51. */
  52. <DrawerLayoutAndroid
  53. ref={(drawerObj) => {this.drawer = drawerObj;}}
  54. drawerWidth={120}
  55. drawerPosition={DrawerLayoutAndroid.positions.Left}
  56. drawerBackgroundColor='#00ffffaa'
  57. drawerLockMode={'unlocked'}
  58. keyboardDismissMode={'on-drag'}
  59. renderNavigationView={() => navigationView}
  60. onDrawerSlide={() => {}}
  61. onDrawerOpen={() => {ToastAndroid.show("打开抽屉",ToastAndroid.SHORT);}}
  62. onDrawerClose={() => {ToastAndroid.show("关闭抽屉",ToastAndroid.SHORT);}}
  63. onDrawerStateChanged={(state) => {
  64. ToastAndroid.show(state,ToastAndroid.SHORT);
  65. }}
  66. >
  67. <View style={{flex: 1,alignItems: 'center'}}>
  68. <TouchableOpacity onPress = {()=>{
  69. this.drawer.openDrawer();
  70. }}>
  71. <Text style={{margin: 10,fontSize: 15,textAlign: 'right'}}>打开抽屉</Text>
  72. </TouchableOpacity>
  73.  
  74. <TextInput
  75. style={{width:'80%',height:100,margin: 10,}}
  76. placeholder="keyboardDismissMode测试,这个Demo的效果:打开抽屉,软键盘隐藏"
  77. multiline={true}
  78. />
  79. </View>
  80. </DrawerLayoutAndroid>
  81. );
  82. }
  83. }
  84.  
  85. const styles = StyleSheet.create({});



效果图:

猜你在找的React相关文章