DrawerLayoutAndroid组件学习

在学习过程中,记录点点滴滴,防止以后忘记;
DrawerLayoutAndroid是Android上专有的组件,类似有android上的DrawerLayout布局,用来设置滑动抽屉的,了解一个组件先要学习其属性,才能灵活运用。

DrawerLayoutAndroid组件有如下属性:

drawerPosition指定抽屉从屏幕的那一侧划出
- 例:drawerPosition={DrawerLayoutAndroid.positions.Left}
drawerWidth 指定抽屉的宽度
- 例:drawerWidth={260}
renderNavigationView function此方法用于渲染一个可以从屏幕一边拖入的导航视图。
-例:renderNavigationView={() => navigationView}//navigationView是一个view
drawerLockMode 设置抽屉的锁定模式。有三种状态:
unlocked (默认值),意味着此时抽屉可以响应打开和关闭的手势操作。
locked-closed,意味着此时抽屉将保持关闭,不可用手势打开。
locked-open,意味着此时抽屉将保持打开,不可用手势关闭。
- 例: drawerLockMode =‘locked-closed’
keyboardDismissMode
指定在滑动过程中是否隐藏软键盘。有如下取值:
1.none 默认值,在滑动过程中不隐藏软键盘
2.on-drag 在滑动开始时候,即隐藏软键盘`
-例:keyboardDismissMode=”on-drag”
onDrawerClose 当抽屉关闭时候,回调该方法
onDrawerOpen 当抽屉打开时候回调该方法
onDrawerSlide 当抽屉产生交互效果时候,回调该方法
onDrawerStateChanged 当抽屉的状态发生变化时,回调该方法
-例: onDrawerOpen={() => {
console.log(‘打开了’)
}} //每当导航视图(抽屉)被打开之后调用此回调函数。
onDrawerClose={() => {
console.log(‘关闭了’)
}} //每当导航视图(抽屉)被关闭之后调用此回调函数。
onDrawerSlide={() => console.log(“正在交互……”)} //每当导航视图(抽屉)产生交互的时候调用此回调函数。
onDrawerStateChanged={(state) => this._DrawerStateChanged(state)} //每当抽屉的状态变化时调用此回调函数。

代码块

class ChatScreen3 extends React.Component {
   //无论抽屉处于那种状态,都仍然可以调用openDrawer/closeDrawer这两个方法打开和关闭。
    openDrawer(){
        this.refs.drawerLayout.openDrawer()
    }
    closeDrawer() {
        this.refs.drawerLayout.closeDrawer()
    }
    _DrawerStateChanged(_state) {
        console.log(_state);
        if (_state == 'Dragging') {
            console.log("拖拽中")
        }
    }
    render() {
        var navigationView = (
            <View style={{flex: 1, backgroundColor: '#fff'}}>
                <Text style={{margin: 20, fontSize: 20,backgroundColor: "red", textAlign: 'left'}}>First drawer</Text>
                <Text style={{margin: 20, fontSize: 20,backgroundColor: "blue", textAlign: 'left'}}>Second drawer</Text>
            </View >);
        return (
            <DrawerLayoutAndroid
                ref={'drawerLayout'}//官方demo上没有这句,会出错
                drawerWidth={260} //抽屉组件的宽度
                drawerPosition={DrawerLayoutAndroid.positions.Left}  //指定弹出的方向
                // 通过renderNavigationView方法渲染一个抽屉组件,其内容就是显示主视图
                onDrawerOpen={() => {
                    console.log('打开了')
                }}
                onDrawerClose={() => {
                    console.log('关闭了')
                }}            //每当导航视图(抽屉)被关闭之后调用此回调函数。
                onDrawerSlide={() => console.log("正在交互......")}    //每当导航视图(抽屉)产生交互的时候调用此回调函数。
                onDrawerStateChanged={(state) => this._DrawerStateChanged(state)} //每当抽屉的状态变化时调用此回调函数。
                renderNavigationView={() => navigationView}>
                <View style={{flex: 1, alignItems: 'center'}}>
                    <Text style={{margin: 10, fontSize: 15, textAlign: 'right'}}>Hello</Text>
                    <Text style={{margin: 10, fontSize: 15, textAlign: 'right'}}>World!</Text>
                    <TouchableHighlight
                        style={styles.toolbar}
                        underlayColor='#FFFFFF'//设置点击背景色属性
                        onPress={() => this.openDrawer()}>
                        <Text>Button</Text>
                    </TouchableHighlight>
                </View>
            </DrawerLayoutAndroid>
        );
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值