如何检测Android设备是否没有物理或屏幕按钮?

时间:2019-05-16 10:17:58

标签: android react-native button detection

许多Android手机(例如Google Pixel 3和Xiaomi Mi Mix 2等),没有任何屏幕或物理导航按钮,它们可以使用手势。在React-Native中,这是一个巨大的问题,因为如果我检测到屏幕的高度,在现代设备上,这将在底部留下一些空白的屏幕。

我已经尝试过此解决方案,它对于带有硬件或屏幕按钮的设备都可以正常工作,但是对于没有按钮的现代设备,则返回null。 Determine whether hardware buttons are drawn on screen in React Native

我当前的RN版本:0.59.5

图片: This is the UI Screenshot From MI MIX 2

2 个答案:

答案 0 :(得分:0)

好吧,您可以使用react-native-device-info来收集移动设备模型和其他详细信息,以便过滤掉那些不支持屏幕或硬件后退按钮的现代移动设备,并使用您的自定义代码段。

我想您正在使用React Native Api的Flexbox和Dimensions处理应用程序的响应能力。

此外,最好共享到目前为止使用的UI屏幕截图和代码库。

答案 1 :(得分:0)

您可以比较设备与窗口(可用)高度之间的差异:

import {Dimensions} from 'react-native';

let deviceHeight = Dimensions.get('screen').height;
let windowHeight = Dimensions.get('window').height;
let bottomNavBarHeight = deviceHeight - windowHeight;
if (bottomNavBarHeight > 0) {
    // onscreen navbar
} else {
    // not onscreen navbar
}