Android开发简友广场Android开发经验谈

Android 全屏显示(兼容API30)

2022-03-30  本文已影响0人  枫未晚

有时候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
        )
}
上一篇 下一篇

猜你喜欢

热点阅读