前言
最近在处理PopupWindow的显示时,遇到了全面屏的适配问题,展示NavigationBar时mContentView底部被遮挡,隐藏NavigationBar时mContentView不能充满。
其中关键在于NavigationBar显示状态和高度的获取,这样mContentView的高度就能随之确定,就不会产生被遮挡或不能充满的UI问题。
NavigationBar相关方法
试验了若干方法,最后总结如下:
1、判断是否支持NavigationBar
public static boolean hasNavigationBar(Context var0) {
boolean var1 = false;
int var2;
Resources var4;
if((var2 = (var4 = var0.getResources()).getIdentifier("config_showNavigationBar", "bool", "android")) > 0) {
var1 = var4.getBoolean(var2);
}
try {
Class var5;
String var6 = (String)(var5 = Class.forName("android.os.SystemProperties")).getMethod("get", new Class[]{String.class}).invoke(var5, new Object[]{"qemu.hw.mainkeys"});
if("1".e