0.0.1 • Published 4 years ago

native-cmos-drawer v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

React Native 抽屉组件使用介绍

安装:

npm install native-cmos-drawer

参数:

NamepropTypedefault valuedescription
drawerLockModestringunlocked设置抽屉的锁定模式enum('unlocked', 'locked-closed', 'locked-open')
drawerPositionenumDrawerConsts.DrawerPosition.Left指定抽屉可以从屏幕的哪一边滑入enum(DrawerConsts.DrawerPosition.Left, DrawerConsts.DrawerPosition.Right)
drawerWidthnumber0指定抽屉的宽度
keyboardDismissModestringnone指定在拖拽的过程中是否要隐藏软键盘enum('none', "on-drag")
onDrawerClosefuncnull每当导航视图(抽屉)被关闭之后调用此回调函数。
onDrawerOpenfuncnull每当导航视图(抽屉)被打开之后调用此回调函数
onDrawerSlidefuncnull每当导航视图(抽屉)产生交互的时候调用此回调函数。
onDrawerStateChangedfuncnull每当抽屉的状态变化时调用此回调函数
renderNavigationViewfuncnull此方法用于渲染一个可以从屏幕一边拖入的导航视图。
distanceTopnumber0抽屉距离顶部
distanceBottomnumber0抽屉距离底部
setOverlayOpacitynumber0.5空白覆盖区域透明度设置
sideslipDistancenumber40可触发手势侧滑的距离设置

使用示例:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  TouchableHighlight,
  View
} from 'react-native';
import DrawerLayout from './drawer';

export default class AppTest extends Component {
  render() {
    var navigationView = (
      <View style={{flex: 1, backgroundColor: '#000',opacity:0.5}}>
      <Text style={{margin: 10, fontSize: 15,color:"white", textAlign: 'left'}}>
      哈哈哈
      </Text>
    </View>
    );
    return (
      <DrawerLayout
        distanceTop={40}
        distanceBottom={100}
        drawerWidth={100}
        ref={drawer => {
          return (this.drawer = drawer);
        }}
        setOverlayOpacity = {0.2}
        drawerPosition={DrawerLayout.positions.Left}
        renderNavigationView={() => navigationView}>
        <TouchableHighlight style={{margin:40}} onPress={() => this.drawer.openDrawer()}>
          <Text>Open drawer</Text>
        </TouchableHighlight>
        <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>
        </View>
      </DrawerLayout>
    );
  }
}

AppRegistry.registerComponent('RNDrawerDemo', () => AppTest);

更新日志:

版本号日期说明
v0.0.32017.8.9增加空白覆盖区域透明度设置setOverlayOpacity,去掉isOverlayOpacity属性
v0.0.42017.8.21增加可触发手势侧滑的距离设置属性sideslipDistance