Android 基于视图反应本机状态栏配置
我在我的应用程序中使用抽屉导航,其中我的主屏幕的状态栏设置为透明,如下所示: Home.js:Android 基于视图反应本机状态栏配置,android,react-native,Android,React Native,我在我的应用程序中使用抽屉导航,其中我的主屏幕的状态栏设置为透明,如下所示: Home.js: 如果我导航到另一条路径,在该路径中,我有相同的状态栏和不同的barStyle,这也很有效: Second.js: 但是,如果要返回主屏幕(使用抽屉),则条形样式不会恢复为黑色内容 当文档说明状态栏的颜色应该根据路线而改变,而不必重新渲染时,您知道为什么会发生这种情况吗:正如Andrew在其上文中指出的,最好使用导航事件来管理状态栏,我最终订阅了导航事件侦听器,以便更改每个视图的状态栏颜色和样式: c
如果我导航到另一条路径,在该路径中,我有相同的状态栏和不同的barStyle
,这也很有效:
Second.js:
但是,如果要返回主屏幕(使用抽屉),则条形样式
不会恢复为黑色内容
当文档说明状态栏的颜色应该根据路线而改变,而不必重新渲染时,您知道为什么会发生这种情况吗:正如Andrew在其上文中指出的,最好使用导航事件来管理状态栏,我最终订阅了导航事件侦听器,以便更改每个视图的状态栏颜色和样式:
componentDidMount() {
const onWillFocusSubscription = this.props.navigation.addListener(
'willFocus',
payload => {
StatusBar.setBarStyle("dark-content");
StatusBar.setBackgroundColor("transparent");
StatusBar.setTranslucent(true);
}
);
}
componentWillUnmount() {
onWillFocusSubscription.remove();
}
不幸的是,我发现它从来没有像它应该的那样工作。我发现最好的选择是使用导航事件来管理它。这样你就能完全控制它了。这是一个痛苦的过程,对你的代码来说是一个额外的锅炉板,但这确实意味着你不需要依赖其他东西来为你改变它。