在我的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())