导航回屏幕时隐藏的 React Native 状态栏不起作用(Android)

Posted

技术标签:

【中文标题】导航回屏幕时隐藏的 React Native 状态栏不起作用(Android)【英文标题】:React Native status bar hidden doesn't work when navigating back to a screen (Android) 【发布时间】:2018-10-23 23:06:03 【问题描述】:

我在 componentWillMount() 和 render() 方法中都使用过<StatusBar hidden />,并且我也尝试过StatusBar.setHidden(true),当我第一次打开组件时它就可以工作。但是如果我导航到另一个屏幕然后再次打开前一个屏幕,大多数情况下会出现状态栏。

有什么办法可以确保状态栏总是隐藏在每个组件中?

提前致谢

编辑:

MainActivity.java

package com.wixnav2;

import com.reactnativenavigation.controllers.SplashActivity;

import android.content.Intent; 
import android.content.res.Configuration; 

public class MainActivity extends SplashActivity 

@Override
public void onConfigurationChanged(Configuration newConfig) 
  super.onConfigurationChanged(newConfig);
  Intent intent = new Intent("onConfigurationChanged");
  intent.putExtra("newConfig", newConfig);
  this.sendBroadcast(intent);


@Override
public void onCreate(Bundle savedInstanceState) 
  Window window = getWindow();
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
     window.setStatusBarColor(ContextCompat.getColor(this, R.color.transparent));
    
  

【问题讨论】:

【参考方案1】:

您可以在您的活动课程中的onCreate 中使用此代码

 if (Build.VERSION.SDK_INT >= 21) 

  requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        

如果使用 SplashActivy,您可以使用此代码

Window window = getWindow();
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(ContextCompat.getColor(this, R.color.transparent));

【讨论】:

感谢您的回答!问题是,我的 MainActivity 我没有扩展 Activity,我正在扩展 SpalshActitvity,因为 wix 导航,所以,如果我尝试添加 onCreate,我会收到错误消息。有什么建议吗? 我在尝试运行此程序时遇到很多错误。如果有帮助,我将使用我的 mainActivity 代码编辑我的问题。

以上是关于导航回屏幕时隐藏的 React Native 状态栏不起作用(Android)的主要内容,如果未能解决你的问题,请参考以下文章

返回屏幕时未在 React Native 中调用 useEffect

React Native刷新屏幕/组件/更改状态

React Native - 嵌套导航器时 React Navigation 过渡缓慢

React Native导航和状态管理

React Native 状态栏颜色错误

根据 Firebase 状态导航到另一个屏幕