miaoli89 发表于 2016-6-21 10:07:28

请问Navigator如何禁用手势操作?



请问Navigator如何禁用手势操作?

东方耀 发表于 2016-6-21 10:13:12

禁用手势操作通过SceneConfig来进行
Navigator.SceneConfigs.FadeAndroid 譬如这一种样式,就没有左滑手势操作
navigator的configureScene 可以返回这个值
具体有哪些?可以看这个目录下,有源代码的: node_modules/react-native/Libraries/CustomComponents/Navigator/NavigatorSceneConfigs.js

            return Navigator.SceneConfigs.FadeAndroid;

东方耀 发表于 2016-6-21 10:15:11

如果要根据不同的页面返回不同的sceneConfig,也可以把这个信息记在route里,类似这样:

configureScene = route => {
    if (route.sceneConfig) {
      return route.sceneConfig;
    }
    return defaultsceneConfig;
};

miaoli89 发表于 2016-6-21 10:51:23

谢谢老大东方耀!太给力了

yumohuike 发表于 2016-7-12 09:17:51

大神,能不能解释下,这代码是什么意思?=>

configureScene = route => {
    if (route.sceneConfig) {
      return route.sceneConfig;
    }
    return defaultsceneConfig;
};

东方耀 发表于 2016-9-9 09:55:12

yumohuike 发表于 2016-7-12 01:17
大神,能不能解释下,这代码是什么意思?=>

configureScene = route => {


根据不同的页面返回不同的sceneConfig
不同的信息放route里

东方耀 发表于 2016-9-9 10:04:18

我使用的是全局禁用。
在Navigator中使用空对象覆盖gestures。
configureScene=
            {
            (route) => {

                //这个是页面之间跳转时候的动画,具体有哪些?可以看这个目录下,
                //有源代码的: node_modules/react-native/Libraries/CustomComponents/Navigator/NavigatorSceneConfigs.js
                //gestures: null,
                // return Navigator.SceneConfigs.PushFromRight;

                return ({
                  ...Navigator.SceneConfigs.PushFromRight,
                  gestures: null
                });
            }
            }

东方耀 发表于 2016-9-9 10:09:23

还有可以针对禁用的,google搜索react native disable gestures,去看stackoverflow和github。上面讲解的比较详细。

mttylzq 发表于 2016-9-29 15:33:18

学习,看看

jason22 发表于 2016-10-4 19:19:49

学习,学习,
页: [1]
查看完整版本: 请问Navigator如何禁用手势操作?