隐藏底部导航栏的虚拟按键,并响应点击事件。解决:点击的时候会唤起底部导航栏第二次点击才会响应点击事件
16lz
2021-01-26
最近在搞Android视频广告,需要全屏播放并隐藏虚拟按键,所以去查了一下资料,最后总结如下:
private void hiddenNavigationBar() { final Window window = activity.getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); window.setBackgroundDrawable(null); window.setDimAmount(0f); window.requestFeature(Window.FEATURE_NO_TITLE); int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;//隐藏导航栏 window.getDecorView().setSystemUiVisibility(uiOptions); window.getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; window.getDecorView().setSystemUiVisibility(uiOptions); } }); }
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION的作用:隐藏底部虚拟导航栏;View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN的作用:全屏显示;View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY的作用:屏幕被点击的时候不会自动唤起虚拟按键,并直接响应点击事件。少了这个你就会发现线底部虚拟按键虽然隐藏了,但是每次你都得点两次才会响应点击事件。
备注:
View.SYSTEM_UI_FLAG_IMMERSIVE:这个不建议使用,因为会导致用户调不起虚拟按键,体验会比较差。
更多相关文章
- Failed to push the item
- 修改Android手机的“虚拟机堆大小”和android:largeHeap来防止AP
- [Android] 修改Android(安卓)Virtual Device Manager 创建虚拟机
- Android模拟器连接物理键盘
- Android(安卓)studio虚拟机adb环境配置
- Android(安卓)的输入框(EditText)设置密码可见/不可见切换的最简
- Android(安卓)Studio 可视化界面 (Design)和文本界面(Text)的切换
- PopupWindow 在华为手机等某些自带虚拟导航栏底部被挡住的解决
- android 如何隐藏4.0以上系统下面的3按个虚拟按键?