我在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 –