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

时间:2018-05-14 10:05:50

标签: android react-native react-native-android statusbar

我已经使用了<StatusBar hidden />,我在componentWillMount()和render()方法中也尝试了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 个答案:

答案 0 :(得分:1)

您可以在活动类<{p>>的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));
}