Установить windowTranslucentStatus=true, когда Android леденец или выше

я хотел бы установить windowTranslucentStatus в true, когда пользователь находится на lollipop и выше, потому что в противном случае (по крайней мере, на kitkat) панель приложений появляется внутри панели системы. На леденце все в порядке. Без создания отдельных стилей.xml для каждой версии, которую, по-видимому, вам больше не нужно делать, как я могу установить ее на java?

У меня есть следующий код в моей mainActivity, но не знаю горячего windowTranslucentStatus... Есть идеи?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // set windowTranslucentStatus = true
}

2 ответов


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