Установить 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);
}
}