private void fullScreenImmersive(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_FULLSCREEN;
view.setSystemUiVisibility(uiOptions);
}
}
@Override
public void show() {
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
super.show();
fullScreenImmersive(getWindow().getDecorView());
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
}
这段代码展示了如何在Android应用中实现全屏沉浸式体验,适用于KitKat及以上版本的系统。通过设置SYSTEM_UI_FLAG相关标志,隐藏导航栏并使状态栏透明,实现了应用界面的沉浸式效果。在`show`方法中,首先设置窗口不可聚焦,然后调用`fullScreenImmersive`设置全屏,最后清除不可聚焦的标志,确保应用正常运行。
313

被折叠的 条评论
为什么被折叠?



