当 android 棒棒糖或更高时设置 windowTranslucentStatus=true

Set windowTranslucentStatus=true when android lollipop or higher

我想在用户使用 lollipop 及更高版本时将 windowTranslucentStatus 设置为 true,否则(至少在 kitkat 上)应用栏出现在系统栏内。在棒棒糖上很好。没有为每个版本单独制作 styles.xml 显然你不应该再做我如何在 java 中设置它?

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // set windowTranslucentStatus = true
}
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);
    }

您可以随时在半透明和不透明之间切换:

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);
  }
}