bre*_*top 5 javascript reactjs react-native react-native-navigation react-native-tabnavigator
如何删除反应导航顶部栏中选项卡之间的空白。所以应该发生的是选项卡大小应该根据屏幕大小进行调整。
这就是我的导航目前的样子。
您可以看到选项卡非常大。它们占用了太多空间。我怎样才能获得这些空白,以便选项卡只占用足够的大小来适合选项卡名称。
我尝试过造型Tab.Navigator但没有成功。例如,我尝试过以下操作:
<Tab.Navigator
initialRouteName="All"
tabBarOptions={{
scrollEnabled: true,
labelStyle: { padding: 0, margin: 0, border: 0 },
tabStyle: { padding: 0, margin: 0, border: 0 },
}}
lazy={true}
style={{ padding: 0, margin: 0, border: 0 }}
>
Run Code Online (Sandbox Code Playgroud)
import React from "react";
import { createStackNavigator } from "@react-navigation/stack";
import { createMaterialTopTabNavigator } from "@react-navigation/material-top-tabs";
import Home from "../screens/Home";
const Tab = createMaterialTopTabNavigator();
const Stack = createStackNavigator();
const HomeTabNavigation = () => {
return (
<Tab.Navigator
initialRouteName="All"
tabBarOptions={{
scrollEnabled: true,
labelStyle: { padding: 0, margin: 0, border: 0 },
tabStyle: { padding: 0, margin: 0, border: 0 },
}}
lazy={true}
style={{ padding: 0, margin: 0, border: 0 }}
>
<Tab.Screen name="All" component={Home} />
<Tab.Screen name="Hot" component={Home} />
<Tab.Screen name="Winners" component={Home} />
</Tab.Navigator>
);
};
const HomeNavigation = () => {
return (
<Stack.Navigator>
<Stack.Screen name="HomeTabNavigation" component={HomeTabNavigation} />
</Stack.Navigator>
);
};
export default HomeNavigation;
Run Code Online (Sandbox Code Playgroud)
几天前我也遇到了同样的问题。
这是我为您提供的解决方案:
import React from "react";
import { useWindowDimensions } from "react-native"; // <-- add this hook
import { createStackNavigator } from "@react-navigation/stack";
import { createMaterialTopTabNavigator } from "@react-navigation/material-top-tabs";
import Home from "../screens/Home";
const Tab = createMaterialTopTabNavigator();
const Stack = createStackNavigator();
const tabsConfig = () => {
const { width } = useWindowDimensions()
return {
lazy: true,
tabBarOptions: {
showLabel: true,
tabStyle: {
// here you can set the tab width , in this case , 3 tabs , width / 3
width: width / 3,
justifyContent: 'center',
alignItems: 'center',
alignSelf: 'center',
},
indicatorStyle: {
borderWidth: 1,
borderColor: 'red',
}
},
}
}
const HomeTabNavigation = () => {
return (
<Tab.Navigator {...tabsConfig()}>
<Tab.Screen name="All" component={Home} />
<Tab.Screen name="Hot" component={Home} />
<Tab.Screen name="Winners" component={Home} />
</Tab.Navigator>
);
};
const HomeNavigation = () => {
return (
<Stack.Navigator>
<Stack.Screen name="HomeTabNavigation" component={HomeTabNavigation} />
</Stack.Navigator>
);
};
export default HomeNavigation;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7184 次 |
| 最近记录: |