在android棒棒糖或更高版本时设置windowTranslucentStatus = true

rap*_*tor 9 java api android android-5.0-lollipop

当用户在棒棒糖及以上时,我想将windowTranslucentStatus设置为true,否则(至少在kitkat上)应用栏出现在系统栏内.在棒棒糖上它很好.没有为每个版本制作单独的styles.xml,显然你不应该再做了,我怎样才能在java中设置它?

我的mainActivity中有以下代码,但不知道hot windowTranslucentStatus ...有什么想法吗?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // set windowTranslucentStatus = true
}
Run Code Online (Sandbox Code Playgroud)

Sat*_*tty 25

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Window w = getWindow(); // in Activity's onCreate() for instance
        w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }
Run Code Online (Sandbox Code Playgroud)


aws*_*man 6

您可以随时使用以下方法在半透明与否之间切换:

public static void setTranslucent(Activity activity, boolean translucent){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window w = activity.getWindow();
  if(translucent) {
    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
  else{
    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
}
Run Code Online (Sandbox Code Playgroud)