【发布时间】:2014-09-18 16:34:58
【问题描述】:
是否可以获得软(虚拟)导航布局的高度?如果是,如何获得高度编程盟友?
【问题讨论】:
是否可以获得软(虚拟)导航布局的高度?如果是,如何获得高度编程盟友?
【问题讨论】:
这应该可行:
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
return resources.getDimensionPixelSize(resourceId);
}
return 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 时有效,否则将无效。因此,在获取显示指标之前检查构建版本
【讨论】: