react-navigation自定義StackNavigator頁面跳轉動畫

weixin_33912246發表於2018-12-28

使用StackNavigator跳轉頁面時,react-navigation根據平臺的不同內建了相應的跳轉動畫。

經過參考網路上的方法發現react-navigation內建跳轉動畫的路徑發生了改變,由
react-navigation/src/views/CardStackStyleInterpolator 改為
react-navigation/src/views/CardStack/CardStackStyleInterpolator

但是我都使用了上面的幾個,發現還是報錯,經過檢視我的react-navigation原始碼(2.18.2)發現,路徑又變了,而且名稱也變了:import StackViewStyleInterpolator from 'react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator.js'

2918620-8c79547a4021c6d5.png
StackViewStyleInterpolator.js的路徑

其中StackViewStyleInterpolator.js

  1. forHorizontal:從右向左進入
  2. forVertical:從下向上進入
  3. forFadeFromBottomAndroid:從底部淡出
  4. forFade:無動畫

具體使用:

import StackViewStyleInterpolator from 'react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator.js'
/**
 * 導航器
 */
export const AppStackNavigator = createStackNavigator({
     initPage:InitPage,
},{
    initialRouteName: 'initPage',
    //去掉所有頁面的Title
    navigationOptions: {
        header: null
    },
    transitionConfig:()=>({
        // 只要修改最後的forVertical就可以實現不同的動畫了。
        screenInterpolator:StackViewStyleInterpolator. forVertical,
    })
});

相關文章