Android 全屏显示(兼容API30)

有时候app需要隐藏掉状态栏,让app全屏显示,在API 30以前写法都是使用的下方这种,网上也大多是这种:

window.setFlags(
    WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN
)

但在API 30以后,这个写法用 WindowInsetsController 接口的 hide 方法替代了,具体如下:

window.insetsController?.hide(WindowInsets.Type.statusBars())

在上方使用的是kotlin写法,如果是java可以用下方写法:

getWindow().getInsetsController().hide(WindowInsets.Type.statusBars());

兼容API 30以前的写法:

with(window) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
        insetsController?.hide(WindowInsets.Type.statusBars())
    else
        setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容