美文网首页
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

    请关注微信公众号,我们将在第一时间更新: DrawerLayoutAndroid 仅限Android平台的抽屉式组...

  • 组件 DrawerLayout - react-native-g

    文档来源: Drawer Layout 这是一个替代RN中 DrawerLayoutAndroid 的跨平台组件 ...

  • React基础

    React包含react元素和react组件 react元素 react组件 react组件分为函数组件和类组件 ...

  • React-native之DrawerLayoutAndroid

    一. 简介 抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且DrawerLa...

  • 组件

    组件是React的基石,所有的React应用程序都是基于组件的。React组件,可以通过React.createC...

  • ReactNative学习笔记(三)Hello World!

    React Native 看起来很像 React,但React Native的基础组件是原生组件 不是web组件。...

  • DrawerLayoutAndroid

    属性# drawerLockMode enum('unlocked', 'locked-closed', 'loc...

  • react子组件向父组件传值

    相关资料:react 父组件怎么获取子组件的这个值React组件间信息传递方式react同级组件之间传值 • 父...

  • React 进阶二 组件详解

    React组件 React的组件大概分为俩部分,无状态组件和有状态组件 无状态组件。下面React官网中定义的一个...

  • 2、react基础介绍

    React理念 划分组件边界的原则 React组件的数据种类 React组件的声明周期 组件的划分 高内聚 低耦合...

网友评论

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

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