如何更改后退按钮标签,react-navigation
How to change the back button label, react-navigation
我正在使用 react-navigation,我无法更改默认 'back' 按钮的区域设置。
在我的 Stack Navigator 中,如果我写下主页的标题,如果它不是太长,它将显示页面标题而不是 'back'。
export const Root = StackNavigator({
Index: {
screen: Index,
navigationOptions: ({ navigation }) => ({
title: "My App name", //Not working when too long
}),
},
我该怎么做?
您可以使用 headerBackTitle
属性来控制返回按钮的标题。
headerBackTitle
Title string used by the back button on iOS, or null to disable label. Defaults to the previous scene's headerTitle
例子
const SomeNavigator = StackNavigator({
Main: { screen: Main },
Login: {
screen: Login,
navigationOptions: {
headerBackTitle: 'some label'
}
}
});
实际上,当我react-navigation
更新到第三版时,后退按钮出现了一个标题。
所以我将 null
传递给 headerBackTitle
并将组件设置为 headerBackImage
然后我得到了我想要的 UI:
所以这样写:
defaultNavigationOptions: {
headerBackImage: <GoBack />,
headerBackTitle: null,
};
提示:请使用defaultNavigationOptions
代替navigationOptions
。
更新(v5.x)
在较新的版本中,有 headerBackTitleVisible
选项键可以通过将其设置为 false
来获取布尔值,后面的标题将消失。
defaultNavigationOptions: {
headerBackImage: <GoBack />,
headerBackTitleVisible: false,
};
UserProfile: {
screen: UserProfile,
navigationOptions: () => ({
title:'Profile',
headerBackImage: <Icon name="remove"
size={25}
color="white" />,
headerTintColor: '#fff',
headerRight:<Icon style={{paddingRight:30}}
name="edit"
size={25}
color="white"></Icon>,
//headerTintColor: 'Colors.DarkBlue',
headerStyle: {
backgroundColor: '#0049b8',
TextColor:'white',
},
}),
},
headerBackTitle = null
和 headerBackTitle = ''
在我的情况下都不起作用,但在第二个选项中添加单个 space 就像 headerBackTitle = ' '
给了我想要的外观。它删除了文本并添加了单个 space.
从版本 5 开始更新
从版本 5 开始,它是 screenOptions
中的选项 headerBackTitleVisible
用法示例:
<Stack.Navigator
screenOptions={{
headerBackTitleVisible: false
}}
>
<Stack.Screen name="route-name" component={ScreenComponent} />
</Stack.Navigator>
如果你只想隐藏在单个屏幕中,你可以通过在屏幕组件上设置 screenOptions
来做到这一点,例如:
<Stack.Screen options={{headerBackTitleVisible: false}} name="route-name" component={ScreenComponent} />
<MyStack.Navigator
screenOptions={{
headerTruncatedBackTitle: 'translated back label',
}}
>
版本5.x: 这个解决方案保留了 React Navigation 的实际行为。仅当路由名称太长时才显示后退按钮。
从 v5 开始,您可以像这样隐藏标题。
我正在使用 react-navigation,我无法更改默认 'back' 按钮的区域设置。
在我的 Stack Navigator 中,如果我写下主页的标题,如果它不是太长,它将显示页面标题而不是 'back'。
export const Root = StackNavigator({
Index: {
screen: Index,
navigationOptions: ({ navigation }) => ({
title: "My App name", //Not working when too long
}),
},
我该怎么做?
您可以使用 headerBackTitle
属性来控制返回按钮的标题。
headerBackTitle
Title string used by the back button on iOS, or null to disable label. Defaults to the previous scene's
headerTitle
例子
const SomeNavigator = StackNavigator({
Main: { screen: Main },
Login: {
screen: Login,
navigationOptions: {
headerBackTitle: 'some label'
}
}
});
实际上,当我react-navigation
更新到第三版时,后退按钮出现了一个标题。
所以我将 null
传递给 headerBackTitle
并将组件设置为 headerBackImage
然后我得到了我想要的 UI:
所以这样写:
defaultNavigationOptions: {
headerBackImage: <GoBack />,
headerBackTitle: null,
};
提示:请使用defaultNavigationOptions
代替navigationOptions
。
更新(v5.x)
在较新的版本中,有 headerBackTitleVisible
选项键可以通过将其设置为 false
来获取布尔值,后面的标题将消失。
defaultNavigationOptions: {
headerBackImage: <GoBack />,
headerBackTitleVisible: false,
};
UserProfile: {
screen: UserProfile,
navigationOptions: () => ({
title:'Profile',
headerBackImage: <Icon name="remove"
size={25}
color="white" />,
headerTintColor: '#fff',
headerRight:<Icon style={{paddingRight:30}}
name="edit"
size={25}
color="white"></Icon>,
//headerTintColor: 'Colors.DarkBlue',
headerStyle: {
backgroundColor: '#0049b8',
TextColor:'white',
},
}),
},
headerBackTitle = null
和 headerBackTitle = ''
在我的情况下都不起作用,但在第二个选项中添加单个 space 就像 headerBackTitle = ' '
给了我想要的外观。它删除了文本并添加了单个 space.
从版本 5 开始更新
从版本 5 开始,它是 screenOptions
headerBackTitleVisible
用法示例:
<Stack.Navigator
screenOptions={{
headerBackTitleVisible: false
}}
>
<Stack.Screen name="route-name" component={ScreenComponent} />
</Stack.Navigator>
如果你只想隐藏在单个屏幕中,你可以通过在屏幕组件上设置 screenOptions
来做到这一点,例如:
<Stack.Screen options={{headerBackTitleVisible: false}} name="route-name" component={ScreenComponent} />
<MyStack.Navigator
screenOptions={{
headerTruncatedBackTitle: 'translated back label',
}}
>
版本5.x: 这个解决方案保留了 React Navigation 的实际行为。仅当路由名称太长时才显示后退按钮。
从 v5 开始,您可以像这样隐藏标题。