SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY实现沉浸式功能的源码解析
16lz
2021-01-24
rk3288 Android N 参考深入理解Android 卷三这里解决的是SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY设置之后不会通过触摸屏幕调出导航栏,这种情况只要触摸屏幕就会调出导航栏SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY区别在于SYSTEM_UI_FLAG_IMMERSIVE_STICKY通过系统上滑或者下滑拉出导航栏后会自动隐藏。而SYSTEM_UI_FLAG_IMMERSIVE不会自动隐藏这里直接上代码 PhoneWindowManager.java (frameworks\base\services\core\java\com\android\server\policy)@Override public void beginLayoutLw(boolean isDefaultDisplay, int displayWidth, int displayHeight, int displayRotation, int uiMode) {// ... final int sysui = mLastSystemUiFlags; boolean navVisible = (sysui & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0; boolean immersive = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0; boolean immersiveSticky = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) != 0; boolean navAllowedHidden = immersive || immersiveSticky; // When the navi
更多相关文章
- android使用service和activity获取屏幕尺寸的方法
- android屏幕和view的截图
- @和?的区别
- 设置popupwindow弹出后的背景透明效果
- Android中实现物体在屏幕的移动
- android中使用DisplayMetrics获取屏幕参数
- android opengl es 蒙版效果
- AndroidManifest.xml的android:name是否带.的区别
- Android:不同drawable文件夹的区别