【问题标题】:Activity "jumps" when View.SYSTEM_UI_FLAG_FULLSCREEN is set设置 View.SYSTEM_UI_FLAG_FULLSCREEN 时活动“跳跃”
【发布时间】:2019-10-24 16:28:16
【问题描述】:

我有一个Activity 用于图片查看器。当我尝试在根视图上使用标志View.SYSTEM_UI_FLAG_FULLSCREEN 将其置于全屏模式时,它不仅隐藏状态栏,而且会跳转并且不允许我使用statusbar 后面的空间。

这是我的问题的简短视频:https://i.imgur.com/kKnsWL0.mp4

在我的ActivityonCreate 中:

containerView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

我的切换全屏功能:

private fun toggleFullscreen() {
    if (Build.VERSION.SDK_INT >= 21) {
        val fullscreenFlag = View.SYSTEM_UI_FLAG_FULLSCREEN
        if (isFullscreen) {
            containerView.systemUiVisibility = containerView.systemUiVisibility and fullscreenFlag.inv()
        } else {
            containerView.systemUiVisibility = containerView.systemUiVisibility or fullscreenFlag
        }
    }

    if (isFullscreen) {
        toolbar.visible
    } else {
        toolbar.invisible
    }

    isFullscreen = !isFullscreen
}

编辑: 看起来问题出在切口附近,因为我只能在我的 Google Pixel 3 XL 上看到这些跳跃。魅族PRO6没什么问题。

【问题讨论】:

    标签: android android-activity fullscreen


    【解决方案1】:

    我找到了解决方案 - 原因是“缺口”设备。如果您遇到同样的问题,只需将此代码放入您的活动中:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多