我刚开始用react-native开发一个应用程序,添加了一个底部导航,然后我开始设计组件的样式,注意到导航上方有一条白色,我无法摆脱它。
问题的图片
如果你知道如何让这条线与背景颜色相同,我将不胜感激。有可能视图背后的默认背景颜色是“闪亮的”,因为它是白色的,我不知道如何改变它。这款应用程序只能在我自己的iPhone XR上运行,所以我不担心与安卓或其他iPhone机型的兼容性
我是一个完全的react-native初学者,所以请耐心听我说,下面是我目前为止的代码:
导航
const Tab = createBottomTabNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator
tabBarOptions={{
activeTintColor: Colors.tabIconSelected,
inactiveTintColor: Colors.tabIconDefault,
style: styles.container
}}>
<Tab.Screen
name="Payments"
component={PaymentScreen}
options={{
tabBarIcon: ({focused}) => <TabBarIcon focused={focused} name="logout"/>
}}/>
<Tab.Screen
name="Income"
component={IncomeScreen}
options={{
tabBarIcon: ({focused}) => <TabBarIcon focused={focused} name="login"/>
}}/>
</Tab.Navigator>
</NavigationContainer>
);
}
const styles = StyleSheet.create({
container: {
backgroundColor: Colors.darkBackgroundColor,
}
});
付款视图
export default class PaymentScreen extends Component{
render() {
return (
<View style={styles.container}>
<Text style={styles.text}>Payments!</Text>
</View>
)
}
}
const styles = StyleSheet.create({
container:{
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: Colors.backgroundColor,
},
text:{
color: Colors.textColor
}
});
5条答案
按热度按时间8ftvxx2r1#
**编辑:**自从我发布这个答案后,API已经更改。如果这个解决方案不适合您,请参阅下面的解决方案
我自己经过一些尝试和错误后发现了这一点。
NavigationContainer
的Tab.Navigator
类有一个名为tabBarOptions
的属性,它将样式表作为它的style
选项。当然,组件的边框也可以在这里更改。不过,这里有一个陷阱:将
borderWidth
设置为0不会隐藏导航上方的白色边框。只有将borderTopWidth
设置为0才能达到预期效果。完整的解决方案如下所示:
ukdjmx9f2#
您可以在screenOption props中的tabBarStyle中删除它,如下所示
wwodge7n3#
使用React导航6.x
在我的例子中,我必须在每个
Tab.Screen
上放置tabBarStyle,例如:rsaldnfx4#
(无法对此答案进行评论,因为链接太长)
这一行似乎不能删除。它是默认的
BottomTab
渲染时出现的,以区分BottomTab
和屏幕的其余部分。通过这个example,并尝试为'BottomTab'应用多种背景颜色,然后你会明白一点清楚。ltskdhd15#
在底部选项卡导航器v6中,您可以使用tabBarStyle属性来解决此白色问题。
确保给定borderTopWidth:0,
()}