0

是否可以获得软(虚拟)导航布局的高度?如果是,如何获得高度编程盟友? 在此处输入图像描述

4

2 回答 2

1

这应该有效:

Resources resources = context.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
    return resources.getDimensionPixelSize(resourceId);
}
return 0;
于 2014-09-18T16:38:39.027 回答
0
DisplayMetrics metrics = new DisplayMetrics();

在没有软导航布局的情况下获取屏幕指标

getActivity().getWindowManager().getDefaultDisplay()
                    .getMetrics(metrics);
int usableHeight = metrics.heightPixels;

使用软导航布局获取屏幕指标

getActivity().getWindowManager().getDefaultDisplay()
                    .getRealMetrics(metrics);
int realHeight = metrics.heightPixels;

当你从 realHeight 中减去 usableHeight 时,你会得到软导航布局的实际高度。

注意:getRealMetrics() 方法仅在 Api 级别大于或等于 17 时有效,否则将无效。因此,在获取显示指标之前检查构建版本

于 2014-10-28T09:14:23.170 回答