0
我已成功啓用沉浸式粘滯模式,但不再顯示操作欄。在IMMERSIVE_STICKY模式下顯示ActionBar
我將此添加到我的ActionBarActivity得到系統/導航欄消失和重新出現在刷卡從側面:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
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_STICKY);
}
}
和讀取文檔指出,我應該在onCreate方法添加以下代碼。我發現onSystemUiVisibilityChange()例程只是在UI再次可見時才被調用。當應用程序以全屏模式啓動時,我確實看到它被調用,所以它隱藏()了actionBar。但是,show()永遠不會被調用。
decorView.setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
// Note that system bars will only be "visible" if none of the
// LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
// The system bars are visible.
ActionBar actionBar = getSupportActionBar();
actionBar.show();
} else {
// The system bars are NOT visible.
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
}
}
});
那麼,如何在系統界面重新出現時得到回調?
我對NVIDIA SHIELD平板電腦的Android 5
這個bug出現有關,但完全無幫助。關於這個問題什麼是「過時的」?爲什麼這可以關閉? https://code.google.com/p/android/issues/detail?id=66702 –
完整的代碼在這裏,如果它有幫助:https://github.com/rogerallen/GridStrument/blob/af50bbc840438f885e489e09fd05c44432a4b130/app/src/主/ JAVA/COM /的Gmail/rallen/gridstrument/MainActivity.java#L76 –