我已成功将应用程序设置为沉浸式模式,因为我想隐藏状态栏(在顶部屏幕上)和导航栏(在底部屏幕上)。问题是,当活动发生变化时,底栏会自动出现,并在下降后立即消失。我想避免这种情况。
所有活动都在清单中设置了 AppTheme.NoActionBar 样式:
android:theme="@style/AppTheme.NoActionBar"
并且在 OnCreate 中都有如下代码:
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
GlobalFunctions.setFullscreen(getWindow().getDecorView());
}
});
这是setFullscreen()函数:
public static void setFullscreen(View decorView){
int ui_Options = 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;
decorView.setSystemUiVisibility(ui_Options);
}
我应该在活动生命周期中的 onCreate 之前设置这些属性吗?还是有其他解决方案?还是我以错误的方式实现了沉浸式模式?