当从一个屏幕转换到另一个屏幕时(使用卡片或模态模式),在屏幕到屏幕动画期间,有一个白色背景将其alpha从0 o 1转换。
如果可能,我想知道如何更改颜色。
注意:模态背景颜色是由@Jason Gaare的回答https://stackoverflow.com/a/45065542/976655解决的,现在问题仍存在于StackNavigation上
let navOptions = {
headerMode: 'screen',
navigationOptions: ({navigation}) => ({
headerTintColor: '#fff',
headerStyle: {
backgroundColor: '#1A1A1A',
},
headerTitleStyle: {
color: '#fff',
fontFamily: 'my-font'
},
headerLeft: (<ImageBtn
buttonStyle={{ .. }}
buttonHighlightStyle={{}}
source={ myImage }
imageStyle={{ ... }}
callback={navigation.goBack.bind(this, null)} />)
})
};
const MyTab = StackNavigator({
MyScreen1: {screen: MyScreen1},
MyScreen2: {screen: MyScreen2},
MyScreen3: {screen: MyScreen3},
MyScreen4: {screen: MyScreen4},
}, navOptions);
答案 0 :(得分:5)
您引用的问题(#563)已于2015年4月关闭,方法是将默认过渡颜色从#555555
更新为透明。可以通过在导航器中设置背景样式来应用过渡颜色,如下所示:
<Navigator
style={{flex: 1}} // style for the navigator container
transitionerStyle={{backgroundColor: 'black'}} // style applied to the scenes container
...
你没有意识到你没有意识到这个问题;有人('alvaromb')在一年后的2016年5月就固定问题发表评论,评论说“这不应该记录在案吗?”显然用户并没有意识到这一点。
显然,类似的背景颜色问题(以及其他问题)在react-native-router-flux版本4(2017年7月8日发布)中得到修复,可能是通过相同/类似的代码更新。
答案 1 :(得分:2)
我通过将其添加到我的StackNavigator来解决了这个问题:
cardStyle: {
backgroundColor: 'rgba(0,0,0,0)',
opacity: 1,
},
现在过渡是完全透明的。
我正在使用"react-navigation": "^1.5.11"
。
答案 2 :(得分:0)
查看AppDelegate.m:
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"Example"
initialProperties:nil
launchOptions:launchOptions];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
尝试在rootview上更改backgroundColor
!这可能有助于您实现目标。
答案 3 :(得分:0)
我只是通过添加解决了
<View style={{
position: 'absolute',
height: '100%',
width: '100%',
backgroundColor: <whatever-color-you-want>
}}/>
就在我的 <Stack.Navigator/>
上方