除了坚果 pro2手机,小米手机也发现全面屏隐藏虚拟按键后,返回的屏幕高度不对。
最终针对不同场合,进行了不同的技术规避。
一种情况,用
Rect rect = new Rect();
viewPager.getWindowVisibleDisplayFrame(rect);
替换
getDisplayMetrics().heightPixels;
另一种情况,则是用
View root = view.getRootView();
int[] location = new int[2];
root.getLocationOnScreen(location);
替换
getDisplayMetrics().heightPixels;
这两种方法都要求 View 已经 attachToWindow,所以不能作为通用解决方案。