我在onResume
设置全屏沉浸模式下为我的Android应用程序是这样的:全屏沉浸模式的Android
@Override
public void onResume() {
super.onResume();
final View decorView = getWindow().getDecorView();
decorView.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);
decorView.setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) { decorView.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);
}
});
}
OnSystemUiVisibilityChangeListener()
也实现立即隐藏酒吧柜面用户不向内轻扫。由于应用程序将在自助终端设备上运行,因此确保用户无法访问主页/后退或任何系统信息很重要。
上述工作正常,但是当显示DialogFragment
时,系统和导航栏将变为可见,直到对话框可见。我怎样才能确保酒吧无论如何都保持隐藏。此外,是否有更好的方式来处理全屏模式,并完全禁止访问系统,导航,动作,应用程序栏。
编辑: 我设法通过我的对话框类下面的代码隐藏对话框上的酒吧:
@Override
public void onStart() {
super.onStart();
Window window = getDialog().getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
int uiOptions = 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;
window.getDecorView().setSystemUiVisibility(uiOptions);
}
但有一个短暂的时间,其中的条滑离视图前得到明显。我怎样才能让酒吧根本不显示。
试试这个解决方案。希望这会起作用。 http://stackoverflow.com/a/32925108/5124050 –