7

我正在编写一个需要计算屏幕高度才能正确显示内容的 Android 应用程序。但是当切换到全屏手势模式时,我在 Mi 设备(Mi 9 SE)中得到的高度不正确。如何获取屏幕的实际高度,或检查用户是否在 Mi 设备中打开了全屏手势模式?

我已经尝试过这些建议。

  1. 如何在android Q中检测全屏手势模式
  2. Android:检测导航栏可见性
  3. 检查导航栏
4

2 回答 2

0

经过搜索和实验,我找到了唯一的解决方案:如何在 android Q 中检测全屏手势模式

而不是使用ViewCompat.setOnApplyWindowInsetsListener()函数,我只需要WindowInsets为当前上下文创建一个实例,然后检查getSystemGestureInsets()每个边。这就是我实现制作 React Native 的原生模块的方式。

如果你需要一个监听器来检测每一个变化,上面的解决方案在 Android 应用程序上做得很好。如果你想要这个 React Native 的监听器,你可能想找到另一种方法,因为我还没有让它工作。

于 2020-01-09T07:33:35.133 回答
0

一个非常简单的答案:不要使用 DisplayMetrics。只需让任何视图占据屏幕的全宽和高度(MATCH_PARENT),然后获取它的尺寸,它就能提供准确的数字。

于 2020-04-10T20:09:55.903 回答