React Native的Navigator禁止全部界面的左滑手势和部分界面的手势
2017-03-28 13:58
2021 查看
全部界面可以有下面二种方法:http://www.jianshu.com/p/643779ade201
方法一:
在使用Navigator时,配置configureScene的gestures为null
configureScene= {(route) => { return ({ ...Navigator.SceneConfigs.PushFromRight, gestures: null }); } }
方法二:
自己定义个configureScene:
const NoBackSwipe = { ...Navigator.SceneConfigs.HorizontalSwipeJump, gestures: { pop: {} } };
然后在Navigator标签下使用
<Navigator initialRoute={{Component:'xxx', name:'xxx', index:0, configure: NoBackSwipe}} renderScene={this.renderScene.bind(this)} configureScene={(route,routeStack)=>{ return NoBackSwipe }} />
这里主要是处理了pop,其中还有jumpback,jumpforward的
如果你只是想禁用
某些界面那可以看下面代码:
首先在Navigator配置的时候不要写死是哪个手势,要传进来:
configureScene={(route) => ({ ...route.sceneConfig || Navigator.SceneConfigs.PushFromRight, gestures: route.gestures })}
然后再你要跳转的时候,如果是要
开启手势的:
const{navigator} = this.props; if(navigator){ navigator.push({ component: LoginView, sceneConfig: Navigator.SceneConfigs.PushFromRight, gestures: Navigator.SceneConfigs.PushFromRight.gestures }); }
如果是要
禁止手势的:
const{navigator} = this.props; if(navigator){ navigator.push({ component: Home, sceneConfig: Navigator.SceneConfigs.PushFromRight, gestures: null }); }
在公司的项目中,有个隐藏的bug,是因为React Native 默认自带,可以右滑返回上一个页面,这种体验,我个人觉得是不错的,但是在有些时候,我们不希望通过手势可以返回上一个页面,或者说希望禁止掉某些单独的页面能够通过手势返回,在百度一番后,发现只有禁止掉所有页面的手势的资料,所以发个文,希望可以帮到有需求的朋友~~~
好了,下面上代码....
1.png
这个Navigator的设置,想必大家不陌生。就是一些场景切换设置,初始路由的设置,重点是_configureScene 方法,如下
2.png
可以看到。我们给route 设置了一个type的属性,如果type===noScroll的话,gestures:{},可以禁止掉手势返回事件, 如果你route的type不等于noScroll的话,还是可以手势返回上一个页面的。例如你从A页面跳转B页面,不希望B页面可以手势返回A页面就可以这样写了,
从A跳转B
好了,完事了。
相关文章推荐
- React native webView Ios端禁止手势放大
- React-Native中禁用Navigator手势返回的示例代码
- React Native navigator关闭侧滑手势
- React-Native 中 StackNavigator的跳转界面的使用
- React-Native之禁用Navigator默认的右滑手势返回上一页
- react native navigator关闭侧滑手势
- React-Native中禁用Navigator手势返回
- React-Native傻瓜式学习笔记(二):封装Navigator工具类
- React Native教程之Navigator的使用
- React Native手势密码组件
- React-Native到0.44版本后Navigator 不能用的问题
- react native Navigator
- ReactNative-Navigator组件简单使用
- React-Native到0.44版本后Navigator 不能用的问题
- React-native数独游戏(二)界面实现
- React Native 导航(Navigator)详解——方法篇
- React Native Navigator
- React-Native之Android:原生界面与React界面的相互调用
- React Native导航组件react-navigation(TabNavigator+StackNavigator实现界面间跳转,Tab切换)
- react native StackNavigator 传值