Jai*_*oks 7 android android-fullscreen android-4.4-kitkat
任何人都知道这是一个Bug还是应该这样做.在使用KitKat的沉浸式模式时单击"溢出"图标时,它会禁用沉浸式模式.遇到其他人?
谷歌的完整代码 - 在这里
public void toggleHideyBar() {
// The UI options currently enabled are represented by a bitfield.
// getSystemUiVisibility() gives us that bitfield.
int uiOptions = getActivity().getWindow().getDecorView().getSystemUiVisibility();
int newUiOptions = uiOptions;
boolean isImmersiveModeEnabled =
((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);
if (isImmersiveModeEnabled) {
Log.i(TAG, "Turning immersive mode mode off. ");
} else {
Log.i(TAG, "Turning immersive mode mode on.");
}
// Navigation bar hiding: Backwards compatible to ICS.
if (Build.VERSION.SDK_INT >= 14) {
newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
// Status bar hiding: Backwards compatible to Jellybean
if (Build.VERSION.SDK_INT >= 16) {
newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
}
// Immersive mode: Backward compatible to KitKat.
// Note that this flag doesn't do anything by itself, it only augments the behavior
// of HIDE_NAVIGATION and FLAG_FULLSCREEN. For the purposes of this sample
// all three flags are being toggled together.
// Note that there are two immersive mode UI flags, one of which is referred to as "sticky".
// Sticky immersive mode differs in that it makes the navigation and status bars
// semi-transparent, and the UI flag does not get cleared when the user interacts with
// the screen.
if (Build.VERSION.SDK_INT >= 18) {
newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}
getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions);
}
Run Code Online (Sandbox Code Playgroud)
小智 3
在 K 中,溢出菜单是一个获得焦点的单独窗口,因此驱动当前系统 UI 标志。
但是,只有当您尝试在状态栏隐藏时显示操作栏时,才会出现这种情况,这是不鼓励的。对于操作栏之外的上下文菜单,您可以使用PopupWindow代替(PopupWindow您可以根据需要自行设置系统 UI 标志)。
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |