Android 10 11更新后 以前的判断方法失效了
这里使用一个笨方法
通过获取屏幕上底部View的坐标去判断
如果底部View 的Y坐标的高度 小于屏幕的实际高度 ,则说明底部有虚拟按钮
mRadioGroup.post(() -> {
int[] outLocation = new int[2];
mRadioGroup.getLocationOnScreen(outLocation);
//获取底部的坐标
int viewY = outLocation[1] + mRadioGroup.getHeight()
//获取屏幕的实际尺寸
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getReaMetrics(outMetrics);
if(viewY<outMetrics.heightPixels){
//小于屏幕实际高度 说明底部显示了虚拟按钮
}else{
//大于等于屏幕高度 说明底部没有显示虚拟按键
}
});