Иммерсивный полноэкранный режим ниже 4.4

У меня есть приложение, которое я хочу запустить в полноэкранном режиме. Если у меня есть устройство с 4.4 KitKat, легко установить SYSTEM_UI_FLAG_IMMERSIVE чтобы приложение стало чистым полноэкранным. Однако, если у меня есть устройство с более низким API, чем 4.4. Я понятия не имею, как сделать его полноэкранным, как будто это KitKat с поддержкой 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); } } 

Какие изменения мне нужно сделать, чтобы приложение вышло в полноэкранном режиме и не отображало навигационную панель и панель состояния при каждом нажатии, а скорее на слайде сверху или снизу.

Я столкнулся с такой же ситуацией, и после некоторых исследований я понял, что из-за проблем с безопасностью не может быть ниже 4.4, поэтому старые API не поддерживают скрытие панели навигации так, как вы хотите. Несмотря на то, что из API 4.1 вы используете флаг SYSTEM_UI_FLAG_LAYOUT_STABLE, ваш макет не будет изменяться, и он будет раздуваться за панель навигации, но вам нужно убедиться, что ни один из ваших важных компонентов пользовательского интерфейса не покрыт им.

https://developer.android.com/training/system-ui/immersive.html Надеюсь, это поможет .. 🙂

Это будет так близко, как вы собираетесь:

 if (Build.VERSION.SDK_INT >= 19) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } else { if (Build.VERSION.SDK_INT > 10) { findViewById(android.R.id.content).setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); } } 

И не поддерживайте устройства с SDK менее 10. Эти шутеры должны получить современный андроид в любом случае.

Просто скопируйте код ниже кода в значение / style.xml.

 <resources> <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> </style> 

Существует два метода для режима погружения
Чтобы он оставался погруженным, измените линию

 View.SYSTEM_UI_FLAG_IMMERSIVE 

По этой линии-

 View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 
Intereting Posts
Проект NoClassDefFoundError для Android Android – Показать / Скрыть системную панель на 4.2.2 (Nexus 10) Android Alarm Manager с широковещательным приемником, зарегистрированным в коде, а не манифестацией Уведомление Android Push Как преобразовать MatOfPoint в MatOfPoint2f в opencv java api Краткий способ написания новых классов DialogPreference? Android: как установить событие onClick для кнопки в элементе списка в ListView SecurityException: вызов Binder для неправильного интерфейса с использованием биллинга в приложении Преобразование значений ReplayGain в настройки громкости Разбиение строки с использованием метода split Как включить перенос приложения на SD-карту (и поддержка андроида еще <2.2)? Ускорить видео в формате HTML5? Использование Android CryptoObject в отпечатке пальца Использование FriendPickerFragment для facebook для поиска друзей с тем же приложением Как создать собственный календарь с управлением событиями?