Существует полноэкранное действие со следующими кодовыми блоками, используемыми для достижения того же:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
// ….
}
@Override
protected void onResume() {
Log.i(TAG, "onResume");
super.onResume();
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
Однако, когда отображается настраиваемое диалоговое окно или когда текст редактирования получает фокус, нижняя панель навигации становится видимойи торчит.Официальный документ гласит:
Если на переднем плане появляется новое действие или диалоговое окно с фокусом и частичным освещением выполняемого действия, то скрытое действие теряет фокус и переходит в состояние «Приостановлено».Затем система вызывает onPause () для него.
Когда охватываемая деятельность возвращается на передний план и восстанавливает фокус, она вызывает onResume ().
Но onResume()
невызывается, когда диалоговое окно теряет фокус (проверено с помощью журналов).
Также попытался добавить следующий код в onCreate () настраиваемого диалогового окна:
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
После добавления вышеуказанного кода панель навигациискрывается, когда пользовательский диалог находится на переднем плане, но когда он не в фокусе, панель навигации возвращается к экрану.
Также попытался установить полноэкранный режим с использованием стилей.Пожалуйста, смотрите ниже то же самое.
<style name="FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowContentTransitions">true</item>
</style>
То же самое в случае с edittext.Активность начинается в полноэкранном режиме, но как только текст редактирования получает фокус, нижняя панель навигации становится видимой и застревает.
Любой ввод приветствуется.
Ура!