13

我在我的应用程序中使用 Actionbar。
我希望以编程方式设置 ActionBar 的高度,因此我正在使用:

ActionBar.getHeight(); 


但我得到的高度值为 0。那么如何获取 ActionBar 的高度呢?

4

3 回答 3

19

我发现ActionBar.getHeight()
如果有人面临同样的问题,那么这个链接很有用。

如果您想明确控制 ActionBar 的大小,@birdy 的答案是一个选项,但有一种方法可以在不锁定我在支持文档中找到的大小的情况下将其拉起。这有点尴尬,但它对我有用。您将需要一个上下文,此示例在 Activity 中有效。〜安东尼

// Calculate ActionBar's height 
TypedValue tv = new TypedValue(); 
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics()); 
}
于 2012-12-12T09:54:31.970 回答
5

下面的代码也会有所帮助。您可能需要将 getContext() 更改为此

final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes(
                    new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();

答案是从这个问题复制的 ActionBar 的大小(以像素为单位)是多少?

对于较新版本的 Android,您只需执行以下操作:

getActionBar().getHeight()
于 2014-04-25T10:39:20.823 回答
3

查找操作栏高度的一种简单方法是使用 Activity 的 onPrepareOptionMenu 方法。

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
           ....
           int actionBarHeight = getActionBar().getHeight());
           .....
    }
于 2013-10-26T11:55:20.793 回答