如何正确隐藏Android API 30的状态栏



在我的Android应用程序中,我想隐藏状态栏,并且只隐藏状态栏。

以下是我在活动中所做的,其行为如预期:

// method #1:
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_FULLSCREEN)

问题是:它在API 30(Android 11(中已被弃用。

以下是我为API 30:所做的尝试

// method #2:
window.insetsController?.hide(WindowInsets.Type.statusBars())

它按预期隐藏了状态栏,但行为不同:当我从屏幕顶部向下滚动以使状态栏出现时,不仅出现了一些奇怪的故障,更重要的是,状态栏不会像以前的方法那样在几秒钟后隐藏。

那么,我如何隐藏API 30+的状态栏,以便在我显示状态栏几秒钟后它会自动隐藏?

谢谢。

以下是答案(来自活动(:

val controller = window.insetsController
controller?.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
controller?.hide(WindowInsets.Type.statusBars())

相关内容

  • 没有找到相关文章

最新更新