如何更改操作栏大小
我想改变操作栏的大小。 我已经尝试了以下编码。
<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_attribute
forms生成的(如果您曾经使用过自定义的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"
到我的布局文件,它的作品。