如何更改操作栏大小

我想改变操作栏的大小。 我已经尝试了以下编码。

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/CustomActionBar</item> </style> <style name="CustomActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> <!-- <item name="android:background">@drawable/action_bar_style</item> --> <item name="android:actionBarSize">15dp</item> <item name="android:background">@drawable/header_bar</item> </style> 

但是操作栏大小没有改变。 有另一种方法吗? 我正在使用API​​级别11。

谢谢。

使用height属性, actionBarSize如果是其他的东西。

 <item name="android:height">@dimen/bar_height</item> 

Explanantion:

从ActionBar的源代码:

 mContentHeight = a.getLayoutDimension(R.styleable.ActionBar_height, 0); 

我们可以看到R.styleable.ActionBar_height被用于高度。 Stylable属性名称是以component_attributeforms生成的(如果您曾经使用过自定义的stylable视图,您将会注意到这一点)。 因此, Actionbar是组件的名称, height是要使用的属性的名称。 由于这是一个系统属性,因此在android命名空间下定义。

更新2014年12月:

现在提供了AppCompat库 ,以将对最新的ActionBar(或工具栏)和主题支持的支持扩展到旧的Android版本。 以下是这种应用程序主题/res/values/styles.xml

 <resources> <!-- Application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- Main theme colors --> <!-- your app branding color for the app bar --> <item name="colorPrimary">@color/primary</item> <!-- darker variant for the status bar and contextual app bars --> <item name="colorPrimaryDark">@color/primary_dark</item> <!-- theme UI controls like checkboxes and text fields --> <!-- native widgets will now be "tinted" with accent color --> <item name="colorAccent">@color/accent</item> <!--Action bar style--> <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> <item name="actionBarStyle">@style/AppTheme.ActionBar</item> </style> <style name="AppTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar"> <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleText</item> <item name="titleTextStyle">@style/AppTheme.ActionBar.TitleText</item> <item name="android:height">@dimen/bar_height</item> <item name="height">@dimen/bar_height</item> </style> <style name="AppTheme.ActionBar.TitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textSize">@dimen/bar_text_size</item> <item name="android:textColor">@color/bar_text_color</item> </style> </resources> 

这种风格现在可以通过在AndroidManifest.xml <application>标签中使用android:theme="@style/AppTheme"来设置为应用主题。

请注意使用重复条目

 <item name="android:actionBarStyle"> <item name="actionBarStyle"> 

那些没有android命名空间的用于支持兼容性库和本地属性。其中一些属性在旧版本的android命名空间下不存在,属于支持库。

在其他一些地方,您需要在菜单xml文件中使用app名称空间( xmlns:app="http://schemas.android.com/apk/res-auto" ),例如app:showAsAction="always"

2015年4月更新

AppCompat Library v22也可用。 通读文章,了解最新消息。

简单地把我的主题风格下的actionBarSize项目,如下所示:

 <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarSize">15dp</item> <item name="actionBarSize">15dp</item> ... </style> 

说明:

在R.styleable中,我们看到R.styleable.Theme_actionBarSize是在主题级别定义的可定制属性。

此外,从源代码res / values / styles.xml中,我们看到如何使用actionBarSize来设置height

 <style name="Widget.ActionBar"> ... <item name="android:height">?android:attr/actionBarSize</item> 

确保将SD的代码添加到styles.xml,然后添加

 android:theme="@style/thin_ab" 

到主清单中的<application>元素。 (我是一个noob,花了大约2个小时才发现。)

将其添加到您从清单文件引用的自定义主题样式XML中:

 <item name="android:windowTitleSize">58dip</item> 

例如,如果你的清单文件看起来像这样:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" **android:theme="@style/AppTheme"** > 

你的主题风格至less应该像这样:

 <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowTitleSize">54dip</item> </style> 

SD的解决scheme不适合我。 我使用的是AppCompat v-21库。 我只是补充一点

 android:layout_height="@dimen/actionBarSize" android:minHeight="@dimen/actionBarSize" 

到我的布局文件,它的作品。