【问题标题】:How to properly hide the status bar for Android API 30?如何正确隐藏 Android API 30 的状态栏?
【发布时间】:2021-05-03 16:03:51
【问题描述】:

在我的 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+ 的状态栏,让它在几秒钟后自动隐藏?

谢谢。

【问题讨论】:

  • 你试过this吗?
  • 太棒了,它有效,谢谢!

标签: android


【解决方案1】:

这是答案(来自活动):

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

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2016-05-10
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多