获取当前的ActionBar大小

时间:2014-03-16 13:04:44

标签: android android-actionbar navigation-drawer

之前我尝试了几件事并在网上搜索,但没有回答。

如何获得当前的ActionBar尺寸?

我这样设置ActionBar

<style name="MusicSlide.Theme.ActionBar" parent="android:Widget.Holo.ActionBar">
    <item name="android:height">60dp</item>
    <item name="android:actionBarSize">60dp</item>
    <item name="android:homeAsUpIndicator">@drawable/ic_drawer</item>
    <item name="android:background">@color/complete_transparent</item>
    <item name="android:titleTextStyle">@style/MusicSlide.Theme.ActionBar.TitleText</item>
    <item name="android:subtitleTextStyle">@style/MusicSlide.Theme.ActionBar.TitleText</item>
</style>

透明。

在我的应用中,我实施了DrawerLayout。我不希望DrawerLayout位于ActionBar下方,因此我设置DrawerLayout的边距:

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

        styledAttributes.recycle();
        ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) mDrawerListRight
                .getLayoutParams();
        mlp.setMargins(0,(actionheight + statbarheight),0,0);

问题是android.R.attr.actionBarSize会返回ActionBar的原始高度。

如何以我的风格设置60dp

1 个答案:

答案 0 :(得分:1)

android:actionBarSize不是Widget.ActionBar的属性,这就是您没有返回正确值的原因。无论您在何处定义android:actionBarStyle,都可以将该行添加到您应用的主题中。