Android虚拟导航栏适配

/**
     * 是否开启全面屏
     *
     * @return
     */
    public boolean isFullScreen() {
        int val = Settings.Global.getInt(this.getContentResolver(), getFullScreenSettingName(), 0);
        return val != 0;
    }

    /**
     * 根据设备获取全面屏设置名称
     *
     * @return
     */
    public static String getFullScreenSettingName() {
        String brand = Build.BRAND;
        if(TextUtils.isEmpty(brand)) return "navigationbar_is_min";

        if (brand.equalsIgnoreCase("HUAWEI")) {
            return "navigationbar_is_min";
        } else if (brand.equalsIgnoreCase("XIAOMI")) {
            return "force_fsg_nav_bar";
        } else if (brand.equalsIgnoreCase("VIVO")) {
            return "navigation_gesture_on";
        } else if (brand.equalsIgnoreCase("OPPO")) {
            return "navigation_gesture_on";
        } else {
            return "navigationbar_is_min";
        }
    }

    /**
     * 获取导航栏高度
     * @param context
     * @return
     */
    public int getBottomHeight(Context context) {
        int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
        logger.info("height = " + context.getResources().getDimensionPixelSize(resourceId));
        return context.getResources().getDimensionPixelSize(resourceId);
    }

判断全面屏是否开启,如果开启并且会覆盖到app上,那么获取导航栏高度,在页面底部显示一个view,并动态设置其高度为导航栏高度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值