我在使用两个不同的导航器转换到另一个屏幕时遇到这种情况:前导航和新导航React Navigation 。一秒钟(或半秒钟)会出现白色闪烁。寻找解决方案我发现其他导航器也有同样的问题。例如wix的导航器 HERE。从链接:
好的,问题是,导航后应用了React样式 开始,默认情况下backgroundColor是白色的,所以这就是 闪烁效应..
有人有同样的问题吗?
答案 0 :(得分:1)
我知道我在这里发帖很晚,但是如果有人得到帮助,那就值得了。
我也遇到了同样的问题,因为我的项目使用的是深色主题,每当导航发生时,白屏都会闪烁几毫秒。
我通过向 NavigationContainer 主题道具添加相同的主题背景颜色来解决此问题,如下所示
<NavigationContainer theme ={{colors:{background: /*same background color of your project */}}}> .... </NavigationContainer>
这解决了我的问题,希望它也解决其他人的问题。
谢谢..
答案 1 :(得分:0)
我遇到了同样的问题。在我看来,有两个解决方案。
Navigator
组件添加背景颜色。我之前应用于我的项目的第二个解决方案不是一个确切的解决方案,而是一个解决方法。我通过将Navigator
从SceneConfigs
更改为Navigator.SceneConfigs.FloatFromRight
来更改Navigator.SceneConfigs.PushFromRight
组件转换屏幕来回的方式。所以我的Navigator
组件会变成类似的东西;
<Navigator
ref={(ref) => this._navigator = ref}
configureScene={(route) => {
return {
...Navigator.SceneConfigs.PushFromRight,
gestures: {}
};
}}
initialRoute={{
id: (Platform.OS === "android" || Platform.OS === "ios") ? 'splashscreen' : 'login',
statusBarHidden: true
}}
renderScene={this.renderScene}
/>
答案 2 :(得分:0)
您可以在导航器中设置背景颜色,如下所示:
<
Navigator style={{flex: 1}}
transitionerStyle={{backgroundColor: 'black'}} ...
希望这有帮助 -
答案 3 :(得分:0)
在使用DrawerNavigator和StackNavigator时,需要:
cardStyle: {
backgroundColor: 'transparent',
},
并且需要:
使用react-native-root-view-background设置RootViewBackgroundColor('black')
答案 4 :(得分:0)
这对我来说是成功的秘诀:
cardStyle: { opacity: 1 }
答案 5 :(得分:0)
我通过在React-Navigation v5的NavigationContainer中设置该属性解决了白色闪烁的问题。
<NavigationContainer theme={{ colors: { background: '#000' } }}>
{...}
</NavigationContainer>
当我更新与背景色黑色相同的颜色时,它帮助我消除了白色闪烁。
https://github.com/software-mansion/react-native-screens/issues/380#issuecomment-748038449
答案 6 :(得分:0)
对于使用 expo 的人,您还需要在 app.json
中传递 backgroundColor
。因此,您应该将其设置为应用配色方案中的某种深色。
// app.json
{
"expo": {
...
"backgroundColor": "#1a202c"
}
}