如何在React导航中覆盖<safeareaview>的forceInset道具

时间:2019-02-21 16:51:53

标签: javascript react-native react-navigation tabbar

我使用React Navigation创建了一个底部标签栏,需要在滚动时设置动画/折叠。但是,当用户滚动时,安全区域视图不会显示动画,而是保留在底部(我希望在底部标签栏隐藏时也将其隐藏)。为了解决这个问题,我这样做:

<SafeAreaView style={{ flex: 1 }} forceInset={{ bottom: 'never' }}>
    <AppContainer />
</SafeAreaView>

并尝试在我的自定义标签栏上设置底部安全区域视图,以便在对其进行动画处理时,整个导航栏(包括安全区域视图都被设置为动画)

const MainBottomTabNavigator = createBottomTabNavigator(
{
    firstTab: { screen: FirstScreen },
    secondTab: { screen: SecondScreen },
    thirdTab: { screen: ThirdScreen },
},
{
    defaultNavigationOptions: ({ navigation }) => {
      return {
        tabBarComponent: props => ( <MyCustomNavBar {...props} /> ),
        tabBarOptions: { safeAreaInset: { bottom: 'always' } },
      };
    },
  }
);

我尝试将tabBarOptions放在不同的位置,但是它们都不起作用。我发现的一件事是,如果我删除自定义选项卡栏,而仅使用默认选项卡栏,那么它将起作用。有没有一种方法可以覆盖自定义标签栏上的forceInset?

0 个答案:

没有答案