如何以编程方式在Mi设备中检测全屏手势模式

时间:2019-08-23 10:56:53

标签: android fullscreen xiaomi

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

我尝试了这些建议。

  1. How to detect full screen gesture mode in android Q
  2. Android: detect navigation bar visibility
  3. Check for navigation bar

2 个答案:

答案 0 :(得分:0)

搜索和试验后,我找到了唯一的解决方案:How to detect full screen gesture mode in android Q

代替使用ViewCompat.setOnApplyWindowInsetsListener()函数,我只需要为当前上下文创建一个WindowInsets实例,然后检查每个边缘的getSystemGestureInsets()。这就是我实现React Native的本机模块的方法。

如果您需要一个侦听器来检测每个更改,则上述解决方案在Android应用程序上效果很好。如果您希望使用此侦听器作为React Native,您可能想要找到另一种方法,因为我没有使其工作。

答案 1 :(得分:0)

一个非常简单的答案: 不要使用DisplayMetrics。只需使任何视图占据屏幕的整个宽度和高度(MATCH_PARENT),然后获得它的尺寸,就可以给出准确的数字。