全屏与非全屏动态切换的正确方式
16lz
2022-05-14
设置全屏
设置一个activity全屏,可以在manifest中配置activity的主题
之前都是使用全屏的主题
android:theme="@android:style/android.NoTitleBar.Fullscreen"
现在全屏只是一个属性而已
<item name="android:windowFullscreen">true</item>
也可以在代码中设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
动态切换非全屏
正常思维会认为这样切换非全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
然而这样切换会导致你的Activity在从全屏变化为非全屏时无法适应主题的变化,而被切掉一块
FLAG_FORCE_NOT_FULLSCREEN这个属性从字面上也能看的出来是一种暴力方式,所以这样切换非全屏是不对的。
正确的从全屏动态切换到非全屏的方式:
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
更多相关文章
- Android中文API(97)―― ContextMenu
- 如何设置Activity全屏显示和没有Title
- Android中取消GridView & ListView默认的点击背景色
- Android(安卓)实现不同样式风格的CharSequence
- Android(安卓)录音
- Jsoup使用教程(一)
- RecyclerView设置addItemDecoration在Fragment中不显示
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像