Android 14 APP 全屏代码实现

新的 Android API 改变了应用全屏的方式,网上搜到的全屏代码都不管用了,甚至 谷歌自己的教程 都没有更新,看了 API 文档才研究明白最新代码怎么写。本篇讲述两种新的全屏方式,一种保留状态栏文字的全屏,一种隐藏状态栏的全屏。

保留状态栏,适配全面屏

默认情况下,应用界面不会延伸到系统状态栏、导航栏、导航条等区域,这会很丑,要想适配全面屏显示,在 Android 14 中,可以用一行代码简单实现。

1
2
3
// import androidx.activity.enableEdgeToEdg

enableEdgeToEdge()

隐藏状态栏,完全全屏

适配全面屏并不会隐藏系统状态栏、导航栏、导航条,如果想实现完全全屏,老办法一般是调用 setSystemUiVisibility(),然而这个方法在 14 中已经弃用了,获取 InsetsControllerViewCompat.getWindowInsetsController() 方法也被弃用了,最新的写法是:

1
2
3
4
5
6
7
8
9
// import androidx.core.view.WindowCompat
// import androidx.core.view.WindowInsetsCompat
// import androidx.core.view.WindowInsetsControllerCompat

val windowController = WindowCompat.getInsetsController(window, window.decorView)
// 应用全屏时,用户仍然可以从屏幕顶部下拉唤出状态栏,此行代码实现当用户唤出状态栏后,自动隐藏状态栏
windowController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
// 隐藏包括状态栏、导航栏、caption bar 在内的所有系统栏
windowController.hide(WindowInsetsCompat.Type.systemBars())

Android 14 APP 全屏代码实现

https://www.imaegoo.com/2024/android-fullscreen/

作者

iMaeGoo

发布于

2024-11-21

更新于

2024-11-21

许可协议

CC BY 4.0

评论

微信二维码