美文网首页
DrawerLayoutAndroid抽屉式组件 | React

DrawerLayoutAndroid抽屉式组件 | React

作者: f8e5107ee6c8 | 来源:发表于2016-10-26 09:34 被阅读0次

    请关注微信公众号,我们将在第一时间更新:

    官网提供的属性:
    • drawerBackgroundColor

    指定抽屉的背景颜色。
    默认值为白色。
    若要设置抽屉的不透明度,请使用rgba。

      例:drawerBackgroundColor="rgba(188,0,202,0.5)"
    
    • drawerWidth

    指定抽屉从屏幕边缘拖进的视图宽度。

        例:drawerWidth={230}
    
    • drawerPosition

    指定抽屉可以从屏幕的哪一边滑入,可选参数:
    DrawerLayoutAndroid.positions.Left
    DrawerLayoutAndroid.positions.Right

       例:drawerPosition={DrawerLayoutAndroid.positions.Left}
    
    • drawerLockMode

    设置抽屉的锁定模式,三种模式

    • unlocked:不锁定,可以响应打开和关闭操作,默认值;

    • locked-losed:抽屉保持关闭,不能用手势打开

    • locked-open:抽屉保持打开,不能用手势关闭;

      例:drawerLockMode='locked-open'

    • keyboardDismissMode

    设置拖动过程中是否隐藏软键盘,可选值有

    • none:不隐藏,默认值

    • on-drag:拖动时隐藏

      例:keyboardDismissMode="on-drag"

    • statusBarBackgroundColor

    使抽屉占满整个屏幕,并设置状态栏颜色(支持API21+/安卓系统5.0以上)

       例:statusBarBackgroundColor='red'
    
    • onDrawerStateChanged

    抽屉的状态变化时调用此回调函数

    • Idle:空闲状态,即没有发生任何交互;

    • Dragging:正在拖动状态,用户正在进行交互;

    • Settling:依靠中状态,用户刚刚结束交互;

      例:
      onDrawerStateChanged={(state)=>this._DrawerStateChanged(state)}

    • onDrawerOpen

    每当导航视图(抽屉)被打开之后调用此回调函数

      例:onDrawerOpen={()=>{console.log('打开了')}}
    
    • onDrawerClose

    每当导航视图(抽屉)被关闭之后调用此回调函数

        例:onDrawerClose={()=>{console.log('关闭了')}}
    
    • onDrawerSlide

    每当导航视图(抽屉)产生交互的时候调用此回调函数

        例:onDrawerSlide={()=>console.log("正在交互......")}
    
    • renderNavigationView

    用于渲染一个可以从屏幕一边拖入的导航视图

      例:renderNavigationView={() => navigationView}
    
    let navigationView = (
      <View style={{flex:1}}>            
        <Text style={{margin:10,fontSize:24,color:'#188eee',}}>
          我是侧边栏/抽屉
        </Text>
        <TextInput style={{width:300,height:40,backgroundColor:'#fff'}}/>
        <TouchableHighlight
          onPress={()=>this.closeDrawer()}
          style={{padding:10,backgroundColor:'#e6e6e6',marginTop:20}}
        >
          <Text style={{textAlign:'center',}}>
            closeDrawer:关闭抽屉
          </Text>
        </TouchableHighlight>
     </View>
    );
    

    navigationView视图中如果设置了backgroundColor,会覆盖drawerBackgroundColor,不少人在这里遇坑,以为drawerBackgroundColor不起作用

    DrawerLayoutAndroid 属性 code

    <DrawerLayoutAndroid
        ref={'drawerLayout'}
        drawerBackgroundColor="rgba(188,0,202,0.5)"
        drawerWidth={230}     
        drawerPosition={DrawerLayoutAndroid.positions.Left}          
        renderNavigationView={() => navigationView} 
        onDrawerOpen={()=>{console.log('打开了')}} 
        onDrawerClose={()=>{console.log('关闭了')}}
        onDrawerSlide={()=>console.log("正在交互......")}
        onDrawerStateChanged={(state)=>this._DrawerStateChanged(state)} 
        drawerLockMode='locked-open'         
        keyboardDismissMode="on-drag"    
        statusBarBackgroundColor='red'
    >
    
    
    此组件还提供openDrawer 与 closeDrawer

    openDrawer:打开抽屉
    closeDrawer:关闭抽屉

    • 无论抽屉处于那种状态,都仍然可以调用openDrawer/closeDrawer这两个方法打开和关闭
    实例:部分代码
    openDrawer(){        
        this.refs.drawerLayout.openDrawer()
    }
    closeDrawer(){
        this.refs.drawerLayout.closeDrawer()
    }
    .....(省略其他)...
    <TouchableHighlight
      onPress={()=>this.openDrawer()}
      style={{padding:10,backgroundColor:'#e6e6e6'}}
    >
      <Text style={{textAlign:'center',}}>
        openDrawer:打开抽屉
      </Text>
    </TouchableHighlight>
    <TouchableHighlight
      onPress={()=>this.closeDrawer()}
      style={{padding:10,backgroundColor:'#e6e6e6'}}
    >
      <Text style={{textAlign:'center',}}>
        closeDrawer:关闭抽屉
      </Text>
    </TouchableHighlight>
    
    最后的效果:

    微信公众号:Domeday

    推送时间为:

    AM 7:00 ~ AM 8:30
    PM 9:30 ~ PM 11:00

    在互联网这个行业,技术的更新迭代速度很快,唯有不断学习和尝试,我们才能立于不败之地,人都是做自己原本不能胜任的事情中,才能快速成长。所以,不要让任何事情成为你不去学习的理由!,你学过的每一样东西,都会在你一生的某个时候派上用场的。

    相关文章

      网友评论

          本文标题:DrawerLayoutAndroid抽屉式组件 | React

          本文链接:https://www.haomeiwen.com/subject/tesduttx.html