(bwin必赢亚洲官网注册) 如何判断手机有没有虚拟按键(NavigationBar)?
bwin官网
bwin官网
当前位置 : bwin官网 > bwin必赢亚洲官网注册

(bwin必赢亚洲官网注册) 如何判断手机有没有虚拟按键(NavigationBar)?

现在要做一个全屏显示,正好底部有按键,跟NavigationBar的按键重叠了,把NavigationBar隐藏之后也不行,只要一点击就重新出现了,现在想先判断手机有没有NavigationBar,如果有的话,留出底部NavigationBar的高度,避免重叠.不知如何判断???

NavigationBar是一个坑,下面给出我判断是否存在NavigationBar的方法,你试一下。

//获取是否存在NavigationBar
public static boolean checkDeviceHasNavigationBarContext context {
    boolean hasNavigationBar = false;
    Resources rs = context.getResources;
    int id = rs.getIdentifier"config_showNavigationBar", "bool", "android";
    if id > 0 {
        hasNavigationBar = rs.getBooleanid;
    }
    try {
        Class systemPropertiesClass = Class.forName"android.os.SystemProperties";
        Method m = systemPropertiesClass.getMethod"get", String.class;
        String navBarOverride = String m.invokesystemPropertiesClass, "qemu.hw.mainkeys";
        if "1".equalsnavBarOverride {
            hasNavigationBar = false;
        } else if "0".equalsnavBarOverride {
            hasNavigationBar = true;
        }
    } catch Exception e {

    }
    return hasNavigationBar;

}

虚拟按键从3.0版本以后才出现,可以换个思路,做版本判断,3.0之后在需要全屏的页面直接调隐藏虚拟键API,让系统去处理就好了。

getWindow.getDecorView.setSystemUiVisibilityView.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

广告位

bwin官网