У меня есть приложение, которое я хочу запустить в полноэкранном режиме. Если у меня есть устройство с 4.4 KitKat, легко установить SYSTEM_UI_FLAG_IMMERSIVE
, чтобы приложение стало чистым полноэкранным.
Однако, если у меня есть устройство с более низким API, чем 4.4. Я понятия не имею, как сделать его полноэкранным, как будто это KitKat с поддержкой Immersive.
Я могу установить полноэкранный режим и скрыть навигационные флаги, чтобы приложение перешло в полноэкранный режим, но как только на экран щелкнут, эти флаги reset и теперь будут отображаться как панель навигации, так и строка состояния.
Есть ли решение, в котором я могу "имитировать" режим immersive на устройствах с JB и, возможно, ICS (не обязательно ниже).
У меня есть метод hideSystemUI, который запускается при срабатывании OnSystemUiVisibilityChangeListener
триггеров, которые выглядят так на данный момент.
private void hideSystemUI() {
actionBar.hide();
isMenuVisible = false;
if (currentapiVersion >= android.os.Build.VERSION_CODES.KITKAT){
mDecorView.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);
}
else{
mDecorView.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);
}
}
Какие изменения мне нужно сделать, чтобы приложение перешло в полноэкранный режим и не отображало навигационную панель и панель состояния при каждом нажатии, а скорее на слайде сверху или снизу.