![](/img/trans.png)
[英]DrawerNavigator header overrides StackNavigator header in React Native
[英]React Native - StackNavigator header has double height
我有一個類似的問題在升級到 expo SDK 37.0.0 之后我的 stackNavigator 標頭的高度增加了一倍,但是我在 Expo SDK 36 上遇到了同樣的問題。我嘗試升級 Expo (37.0.0) 和 react-navigation 版本,但它對標題沒有影響。
"react-navigation": "^3.13.0",
"react-navigation-drawer": "^1.4.0",
"react-navigation-stack": "^1.7.3",
"react-navigation-tabs": "^1.2.0",
我有一個身份驗證開關(如 react-navigation docs 中所示),然后路由到 BottomTabNavigator 上方的堆棧。 通過這種方式,我可以在底部欄上呈現一個屏幕。 然后我在BottomTabNavigator中有一個堆棧列表。
// Main appNavigator
export default createAppContainer(
createAnimatedSwitchNavigator({
AuthLoading: AuthLoadingScreen,
Auth: AuthStack,
App: AboveBottomTabStack,
}, {
initialRouteName: 'AuthLoading',
})
);
// Components routed here are ABOVE bottom tab navigator
const AboveBottomTabStack = createStackNavigator(
{
Tabs: {
screen: MainTabNavigator,
navigationOptions: {
// Hides the header, in this case the headers of the Stack components inside TabNavigator are shown
header: null,
}
},
ReportScreen: ReportScreen
}
);
// Components routed here are UNDER bottom tab navigator
const MainTabNavigator = createBottomTabNavigator({
HomeStack: HomeStack,
ReportListStack: ReportListStack,
SettingsStack: SettingsStack,
});
// One of the stacks inside the TabNavigator
const HomeStack = createStackNavigator(
{
Dashboard: {
screen: DashboardScreen,
navigationOptions: {
headerStyle: {
//backgroundColor:'#00beb8',
height: 0, // Even with height 0 the header is displayed
}
}
},
}
);
我嘗試將最后一個堆棧的標題設置為 null(例如 HomeStack 中的那個),並且標題實際上隱藏了。 問題是尺寸,即使高度設置為0,也顯示了一小部分標題,您可以在頂部鏈接的問題中看到圖片。
好的,在朋友的幫助下,我們設法找到了解決此問題的方法。 在導航選項中使用以下道具為我們解決了這個問題:
navigationOptions: {
headerForceInset: { vertical: 'never' },
}
根據我從 react-navigation文檔中的理解,它圍繞應用程序的內容創建了一個 SafeAreaView 組件,但是為什么它會在頂部創建這個煩人的小欄,我仍然不知道。
編輯:這個道具應該只為 android 編寫,因為在 Iphone 上它會產生圖形問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.