0

我已经实现了一个堆栈导航器,如下所示:

const MainNav = StackNavigator({
    notes: { screen: NotesScreen },
    addNote: { screen: AddNoteScreen }
}, {
    initialRouteName: 'notes'
});

现在,当我从 myNotesScreen转到 my时,AddNoteScreen我得到了预期的后退箭头。但是,我已经为我的标题设置了样式以AddNoteScreen使用以下内容navigationOptions

static navigationOptions = () => ({
    title: 'Add a note',
    headerStyle: {
        height: Platform.OS === 'android' ? 54 + STATUS_BAR_HEIGHT : 54,
        backgroundColor: '#2196F3'
    },
    headerTitleStyle: {
        marginTop: Platform.OS === 'android' ? STATUS_BAR_HEIGHT : 0,
        color: 'white'
    }
})

现在headerTitleStyle不影响 Android 上的后退箭头。如何使 android 上的后退箭头采用与 相同的样式headerTitleStyle

这是当前问题的图像:

问题演示

4

2 回答 2

1

在 navigationOptions 中有一个属性headerTintColor可以用来改变后退按钮的图标颜色。除了react-navigation v1.0.0-beta.11目前没有其他选项可以自定义后退按钮。

static navigationOptions = () => ({
    title: 'Add a note',
    headerStyle: {
        height: Platform.OS === 'android' ? 54 + STATUS_BAR_HEIGHT : 54,
        backgroundColor: '#2196F3'
    },
    headerTitleStyle: {
        marginTop: Platform.OS === 'android' ? STATUS_BAR_HEIGHT : 0,
        color: 'white'
    },
    headerTintColor: 'white'
})

顺便说一句,而不是在标题样式中处理状态栏高度,只需在根组件中呈现 react-native 的 StatusBar 组件,例如

import {
  AppRegistry,
  View,
  StatusBar,
} from 'react-native';

class AppWithStatusBar extends Component {

  render() {
    return(
      <View style={{flex: 1}}>
        <StatusBar barStyle="light-content"/>
        <MainNav />
      </View>
    );
  }
}

然后渲染这个“AppWithStatusBar”组件

AppRegistry.registerComponent('your_app', () => AppWithStatusBar);
于 2017-08-09T10:15:40.030 回答
0

为什么不在 Android 中隐藏状态栏?:

import { View, StatusBar } from 'react-native';

class App extends React.Component {

  render() {
    return (

     <View style={{flex : 1}}>
       <StatusBar hidden = {true}/>
       <Search/>
     </View>

    );
  }
}
于 2018-03-16T12:09:10.383 回答