从 Android 10(API 级别 29)开始,Android 引入了全新的 “Gesture Navigation” 导航方式,它让用户可以更方便地浏览应用程序。在 Android 10 中,人们还可以使用后退手势来回退以前的屏幕。而 Android 11(API 级别 30)中的状态栏被隐藏,但会影响你应用的界面。改进的沉浸式模式会像 Android 11(API 级别 30)中的变化一样,将主屏幕内容扩展到状态栏下方。同时,它提供了一种新的方法来绘制应用图标。
在 Android 11(API 级别 30)中,这意味着默认情况下,你的应用程序图标会显示在状态栏的各个位置,并在用户向下滑动时显示。你可以使用以下代码来查看状态栏与应用程序图标在 Android 11(API 级别 30)中的可见性:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.insetsController?.run {
hide(WindowInsets.Type.statusBars())
systemBarsBehavior =
WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
} else {
@Suppress("DEPRECATION")
window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
}
以上代码中,如果应用程序运行在 Android 11(API 级别 30)及更高版本的设备上,则会隐藏状态栏,并在用户向下滑动时显示它。当然,在 API 级别 30 之前的设备上,我们可以仍然使用以前的方式设置全屏模式,即 WindowManager.LayoutParams.FLAG_FULLSCREEN
。
注意:如果在使用 Android 11