我花了不少时间试图将DrawerNavigator的背景更改为透明而没有任何成功。 当我写作 当我在主要组件中更改它时,它可以工作
const MainTabBarDrawer = DrawerNavigator({
Home:{
screen:MainTabNavigator,
},
},{
drawerWidth: 200,
drawerPosition: 'right',
// contentComponent: props => <Text style={{color:'white'}} >text
</Text>,
drawerBackgroundColor: 'yellow',
//backgroundColor:'transparent',
// style: {
// //backgroundColor: 'transparent',
// flex: 1
// },
// contentOptions: {
// style: {
// backgroundColor: 'transparent',
// flex: 1
// }
},
{
style: {
backgroundColor: 'transparent',
flex:1
}
}
)
class App extends Component{
render()
{
return(<MainTabBarDrawer style={{backgroundColor: 'transparent'}}/>)
//return(<Login/>)
}
}
虽然上述方法可行但我的布局非常复杂,我不希望抽屉出现在我的所有视图中。 让任何身体知道如果我可以直接改变DrawerNavigator的背景而不将其作为一个组件渲染?
答案 0 :(得分:3)
在React Navigation 5中,这将是:
<Drawer.Navigator
initialRouteName={...}
drawerContent={...}
drawerStyle={{backgroundColor: 'transparent'}}
>
答案 1 :(得分:1)
将drawerBackgroundColor: "transparent"
添加到drawerConfig。
答案 2 :(得分:1)
我认为您正在寻找drawerContentOptions
中的drawerStyle
或Drawer.Navigator
<NavigationContainer>
<Drawer.Navigator
..........
drawerPosition="left"
drawerContentOptions={{
activeBackgroundColor:"transparent", //here change it
}}
drawerStyle={{backgroundColor: 'transparent'}} //or here
initialRouteName="Splash">
<Drawer.Screen
name="HomePage"
component={StackScreen}
options={{
drawerLabel: () => {return null},
title:null,
drawerIcon: () => {return <AppIconImage/>}
}}
/>
</Drawer.Navigator>
</NavigationContainer>
答案 3 :(得分:0)
由于我已更新到最新版本,因此问题已修复 1.0.0-beta.16