我在我的应用程序中使用Actionbar。
我想以编程方式使用ActionBar的高度,因此我正在使用:
ActionBar.getHeight();
但是我得到了0的高度值。
那么如何才能获得ActionBar的高度?
答案 0 :(得分:16)
我找到ActionBar.getHeight()
的替代方案如果有人遇到同样的问题,那么this链接就很有用。
如果您想明确控制,@ birdy的答案是一个选项 ActionBar大小有一种方法可以在不锁定的情况下将其拉出来 我在支持文档中找到的大小。这有点尴尬但是 它对我有用。你需要一个上下文,这个例子是有效的 在活动中。 〜Anthony
// Calculate ActionBar's height
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
答案 1 :(得分:5)
下面的代码也会有所帮助。您可能需要将getContext()更改为此
final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
答案是从这个问题What is the size of ActionBar in pixels?
中复制而来的对于较新版本的Android,您只需执行此操作:
getActionBar().getHeight()
答案 2 :(得分:3)
查找操作栏高度的简单方法来自Activity onPrepareOptionsMenu方法。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
....
int actionBarHeight = getActionBar().getHeight());
.....
}