我正在开发一个可以有两种模式的应用程序:带操作栏和全屏的默认模式。用户可以从默认模式切换到全屏模式并返回。 现在我想隐藏在Android 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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
当用户切换回正常模式时,我正在运行此代码:
mDecorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
第一个问题在于,当我切换到沉浸式模式时,我的视图没有调整大小,我可以看到窗口的背景而不是软件按钮(图1)。
第二个问题是,当我从全屏模式切换回默认模式时,我的视图也没有调整大小,操作栏和软件按钮溢出了我的视图。 (图2)