反应导航选项卡导航器中的淡入淡出动画
Cross fade animation in react navigation tab navigator
我正在使用 React Navigation 选项卡导航器和 React 本机 material 底部导航,它目前在屏幕之间滑动。我如何让它从一个屏幕淡入淡出到另一个屏幕,就像 Material 设计指南建议的那样。
Router.js
import React from 'react';
import { TabNavigator, StackNavigator, NavigationActions } from 'react-navigation';
import { NavigationComponent } from 'react-native-material-bottom-navigation';
import Icon from 'react-native-vector-icons/MaterialIcons';
import { MAIN_COLOR, BOTTOM_BAR_COLOR, BOTTOM_BAR_ICON_COLOR } from '../config';
import { Classes, Settings, Search, SplashScreen } from '../components/screens';
import Login from '../components/screens/Login';
import Main from '../Main';
export const Tabs = TabNavigator({
Classes: {
screen: Classes,
navigationOptions: {
tabBarLabel: 'Classes',
tabBarIcon: () => <Icon size={24} name="list" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
Search: {
screen: Search,
navigationOptions: {
tabBarLabel: 'Search',
tabBarIcon: () => <Icon size={24} name="search" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
Settings: {
screen: Settings,
navigationOptions: {
tabBarLabel: 'Settings',
tabBarIcon: () => <Icon size={24} name="settings" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
}, {
tabBarComponent: NavigationComponent,
tabBarPosition: 'bottom',
swipeEnabled: false,
tabBarOptions: {
bottomNavigationOptions: {
labelColor: BOTTOM_BAR_ICON_COLOR,
rippleColor: MAIN_COLOR,
shifting: false,
tabs: {
Search: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="search" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
Classes: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="list" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
Settings: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="settings" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
},
},
},
});
这就是我想要的效果
这就是我的
我终于通过在选项卡导航器中禁用动画来修复错误。
我正在使用 React Navigation 选项卡导航器和 React 本机 material 底部导航,它目前在屏幕之间滑动。我如何让它从一个屏幕淡入淡出到另一个屏幕,就像 Material 设计指南建议的那样。
Router.js
import React from 'react';
import { TabNavigator, StackNavigator, NavigationActions } from 'react-navigation';
import { NavigationComponent } from 'react-native-material-bottom-navigation';
import Icon from 'react-native-vector-icons/MaterialIcons';
import { MAIN_COLOR, BOTTOM_BAR_COLOR, BOTTOM_BAR_ICON_COLOR } from '../config';
import { Classes, Settings, Search, SplashScreen } from '../components/screens';
import Login from '../components/screens/Login';
import Main from '../Main';
export const Tabs = TabNavigator({
Classes: {
screen: Classes,
navigationOptions: {
tabBarLabel: 'Classes',
tabBarIcon: () => <Icon size={24} name="list" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
Search: {
screen: Search,
navigationOptions: {
tabBarLabel: 'Search',
tabBarIcon: () => <Icon size={24} name="search" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
Settings: {
screen: Settings,
navigationOptions: {
tabBarLabel: 'Settings',
tabBarIcon: () => <Icon size={24} name="settings" color={BOTTOM_BAR_ICON_COLOR} />,
},
},
}, {
tabBarComponent: NavigationComponent,
tabBarPosition: 'bottom',
swipeEnabled: false,
tabBarOptions: {
bottomNavigationOptions: {
labelColor: BOTTOM_BAR_ICON_COLOR,
rippleColor: MAIN_COLOR,
shifting: false,
tabs: {
Search: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="search" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
Classes: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="list" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
Settings: {
barBackgroundColor: BOTTOM_BAR_COLOR,
activeIcon: <Icon size={24} name="settings" color={MAIN_COLOR} />,
activeLabelColor: MAIN_COLOR,
},
},
},
},
});
这就是我想要的效果
这就是我的
我终于通过在选项卡导航器中禁用动画来修复错误。