android navigation bar高度,Android NavigationBar的显示状态与高度获取

本文介绍了在处理PopupWindow显示时遇到的全面屏适配问题,主要聚焦于如何获取Android NavigationBar的显示状态和高度。通过提供三个关键方法:判断是否支持NavigationBar、判断是否显示NavigationBar以及获取NavigationBar高度,来解决内容被遮挡或无法充满屏幕的问题。同时,文中给出了自定义View的onMeasure方法示例,以动态计算并设置View高度,以兼容不同类型的全面屏手机。
摘要由CSDN通过智能技术生成

前言

最近在处理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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值