Полный экран + панель действий (Immersive)
В настоящее время я использую режим низкого профиля, чтобы скрыть верхнюю черную полосу и затемнить нижнюю навигационную панель. Я хочу использовать режим Immersive на Android, но у меня проблемы с панелью действий. Я бы хотел, чтобы режим Immersive был липким, но держите панель действий там, где она должна быть. Нет ли способа сделать это?
Это то, что у меня есть до сих пор, и оно работает, за исключением того, что оно также скрывает панель действий.
@TargetApi(19)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
if (android.os.Build.VERSION.SDK_INT >= 19) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_FULLSCREEN |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
}
Любые советы были бы замечательными. Спасибо.
Ответы
Ответ 1
Я просто пробовал этот код на моей nexus 7 (Android 4.4.2) и отлично работает
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
if (hasFocus) {
decorView
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
}
Ответ 2
Вы можете добавить это в событие onResume.
@Override
public void onResume() {
super.onResume();
getWindow().getDecorView().setSystemUiVisibility(
View.GONE);
}