51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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()) |

赞(1)
未经允许不得转载:工具盒子 » Android 14 APP 全屏代码实现