animation - 如何在 StackNavigator 中更改动画的方向?

标签 animation react-native react-navigation

如何在 StackNavigator 中更改动画的方向?

当前行为

当用户转到另一个屏幕时,屏幕从 飞出从下到上 .

预期行为

当用户转到另一个屏幕时,屏幕从 飞出从右到左 . (比如 Facebook 或 Instagram!)

堆栈导航器代码

export default StackNavigator ({
    Main: {
        screen: MainScreen,
    },
    ...
}, {
    navigationOptions: ({navigation, screenProps}) => ({
        tabBarOnPress: blahblaj
    }),
    lazy: true
    // I guess we can do something here
});
  • 如果能设置动画时间就更好了!目前看起来屏幕从屏幕中间飞到顶部。我想要像 Facebook 或 Instagram 那样的自然动画 :)

  • 提前致谢,

    最佳答案

    在 iOS 上,这是标准行为。 Android 需要一些配置。您可以使用两个选项来设置屏幕转换:modetransitionConfig .在这种情况下 transitionConfig将工作:

    import CardStackStyleInterpolator from 'react-navigation/src/views/CardStack/CardStackStyleInterpolator';
    // this path can be different depending on react-navigation version, this one is for @1.0.0-beta.15 
    
    export default StackNavigator ({
        Main: {
            screen: MainScreen,
        },
            ...
    }, {
       transitionConfig: () => ({
            screenInterpolator: CardStackStyleInterpolator.forHorizontal,
       }),
    })
    

    我们使用 CardStackStyleInterpolator来自 react-navigation 源,但如果需要,您可以提供自定义转换,这里是如何制作 oneherethis article .
    mode更多用于默认行为:
    export default StackNavigator ({
        Main: {
            screen: MainScreen,
        },
        ...
    }, {
        mode: 'card',
        navigationOptions: ({navigation, screenProps}) => ({
            tabBarOnPress: blahblaj
        }),
        lazy: true
    });
    
    mode只能有两个值:
  • card - 使用标准的 iOS(从右到左)和 Android(从下到
    顶部)屏幕转换。这是默认设置。
  • modal - 使屏幕从底部滑入这是一个常见的
    iOS 模式。仅适用于iOS,对Android 无效。
  • 关于animation - 如何在 StackNavigator 中更改动画的方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018666/

    相关文章:

    android - react-native-sound,循环之间的间隙(Android)

    javascript - 无法更新 React Native 中的状态?

    react-native - 如何正确重置导航到另一个 View

    javascript - 如何在 React Native 标题栏中高效渲染图像组件?

    javascript - 如何在 HTML5 中制作和删除圆弧

    ios - UICollectionVIew:当 View 滚动时对单元格进行动画处理

    javascript - 在 React Native View 上强制 onLayout

    android - DeepLinking 可以工作,但无法使用 react 导航导航到预期屏幕

    javascript - jQuery 水平滚动动画不起作用

    jquery - 如何让图片在页面中随机移动并在移动时旋转 Angular (使用jQuery或CSS)