如何修复底栏位置 - 反应导航?
How can i fix bottom bar position - react navigation?
我的应用程序中有一个底部标签栏,
我想为它添加一个圆角“top - left/right”它已应用但我有一个问题我在它后面得到背景视图“白色”!
要删除它,我应该使用“绝对”位置,但这会使标签栏覆盖底部的另一个 Buttons/views,因为它是绝对的`!
那么有没有办法不使用 "position: absolute"
来去除底部栏后面的背景
没有绝对
As you see in the Top "left/right" corner there's a background
绝对
It's covering the Button, "And i don't want to add a bottom - padding/margin for every screen I have, also I don't know what the correct value should I set for them!
代码片段
<MainTab.Navigator
tabBarOptions={{
activeTintColor: Theme.PrimaryColor,
labelStyle: {
paddingBottom: 5,
fontSize: 14,
},
style: {
borderTopLeftRadius: 30,
borderTopRightRadius: 30,
backgroundColor: '#ff0',
height: Platform.OS === 'ios' ? 100 : 70,
// position: 'absolute',
// bottom: 0,
// left: 0,
// right: 0,
},
}}>
.....
</MainTab.Navigator>
我认为没有绝对定位是不可能的。
至于您的问题,在栏上使用 position: 'absolute'
时要添加多少边距,您为每个选项卡屏幕的父视图添加了一个底部边距,等于栏的高度。
如果将所需的标签栏高度存储在某个文件中的变量中并将其导出,则可以重复使用这些样式。
import {Platform} from 'react-native';
export const tabBarHeight = Platform.OS === 'ios' ? 100 : 70,
然后您的选项卡导航器中的屏幕可能如下所示:
import {tabBarHeight} from './somePath';
const Screen = () => {
return (
<View
style={{
marginBottom: tabBarHeight,
// Other styling...
}}>
<Text>Content</Text>
</View>
);
};
您需要对选项卡导航器中的所有屏幕重复此操作。但是,如果您以这种方式设置样式,则只需更改声明它的 tabBarHeight
的值即可为所有屏幕更改它。
如果您不知道将这些样式放在哪里或通常如何构建您的样式,您可以阅读此处的一篇不错的文章:https://thoughtbot.com/blog/structure-for-styling-in-react-native。
我的应用程序中有一个底部标签栏, 我想为它添加一个圆角“top - left/right”它已应用但我有一个问题我在它后面得到背景视图“白色”! 要删除它,我应该使用“绝对”位置,但这会使标签栏覆盖底部的另一个 Buttons/views,因为它是绝对的`!
那么有没有办法不使用 "position: absolute"
没有绝对
As you see in the Top "left/right" corner there's a background
绝对
It's covering the Button, "And i don't want to add a bottom - padding/margin for every screen I have, also I don't know what the correct value should I set for them!
代码片段
<MainTab.Navigator
tabBarOptions={{
activeTintColor: Theme.PrimaryColor,
labelStyle: {
paddingBottom: 5,
fontSize: 14,
},
style: {
borderTopLeftRadius: 30,
borderTopRightRadius: 30,
backgroundColor: '#ff0',
height: Platform.OS === 'ios' ? 100 : 70,
// position: 'absolute',
// bottom: 0,
// left: 0,
// right: 0,
},
}}>
.....
</MainTab.Navigator>
我认为没有绝对定位是不可能的。
至于您的问题,在栏上使用 position: 'absolute'
时要添加多少边距,您为每个选项卡屏幕的父视图添加了一个底部边距,等于栏的高度。
如果将所需的标签栏高度存储在某个文件中的变量中并将其导出,则可以重复使用这些样式。
import {Platform} from 'react-native';
export const tabBarHeight = Platform.OS === 'ios' ? 100 : 70,
然后您的选项卡导航器中的屏幕可能如下所示:
import {tabBarHeight} from './somePath';
const Screen = () => {
return (
<View
style={{
marginBottom: tabBarHeight,
// Other styling...
}}>
<Text>Content</Text>
</View>
);
};
您需要对选项卡导航器中的所有屏幕重复此操作。但是,如果您以这种方式设置样式,则只需更改声明它的 tabBarHeight
的值即可为所有屏幕更改它。
如果您不知道将这些样式放在哪里或通常如何构建您的样式,您可以阅读此处的一篇不错的文章:https://thoughtbot.com/blog/structure-for-styling-in-react-native。