使用粘性沉浸模式检测系统 ui 何时可见

Ema*_*lin 6 android

当使用粘性沉浸模式(https://developer.android.com/training/system-ui/immersive.html)时,既不会调用 View.OnSystemUiVisibilityChangeListener 也不会清除任何可见性标志(如 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION):

粘滞标志——这是您在使用 IMMERSIVE_STICKY 标志时看到的 UI,并且用户滑动以显示系统栏。半透明条暂时出现,然后再次隐藏。滑动操作不会清除任何标志,也不会触发您的系统 UI 可见性更改侦听器,因为系统栏的瞬时外观不被视为 UI 可见性更改。

我有一个带有复杂手势检测代码的视图。向下滑动以显示系统导航 ui 确实会干扰这些手势。如果我使用常规沉浸模式,我可以检查系统导航 ui 是否可见,在这种情况下,我会忽略手势,但使用粘性模式则无法进行检查(如上所述)。

有谁知道如何确定系统导航 ui 在粘性沉浸模式下是否可见,或者有没有人知道如何处理干扰我自己的手势检测代码的向下滑动?

我知道这个问题Detecting when system buttons are visible while using 'immersive mode'但我见过使用粘性沉浸模式和手势检测的应用程序,不会被向下滑动搞砸。