我想更改操作栏的大小。我尝试过以下编码。
<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 level 11.。
感谢。
答案 0 :(得分:73)
使用height
属性,actionBarSize
if if for other。
<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
(如果您曾使用自定义stylable
视图,则会注意到这一点)。因此,Actionbar
是组件的名称,height
是要使用的属性的名称。由于这是一个系统属性,因此在android
命名空间下定义。
2014年12月更新:
现在提供 AppCompat library以扩展对最新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>
现在可以使用android:theme="@style/AppTheme"
的{{1}}标记中的<application>
将此样式设置为应用主题。
请注意使用重复条目
AndroidManifest.xml
没有<item name="android:actionBarStyle">
<item name="actionBarStyle">
命名空间的那些用于支持兼容性库和本机属性。这些属性中的一些在旧版本的android命名空间下不存在,属于支持库。
在其他一些地方,您需要在菜单xml文件中使用android
命名空间(app
),例如xmlns:app="http://schemas.android.com/apk/res-auto"
。
2015年4月更新
AppCompat Library v22也可用。仔细阅读文章,了解新内容。
答案 1 :(得分:13)
简单地将actionBarSize
项置于MyTheme样式下,如下所示:
<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>
答案 2 :(得分:3)
将此添加到您从清单文件中引用的自定义主题样式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"** >
你的主题风格应该是 - 至少 - 像这样:
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowTitleSize">54dip</item>
</style>
答案 3 :(得分:2)
确保将S.D.的代码添加到styles.xml,然后添加
android:theme="@style/thin_ab"
到主清单中的<application>
元素。 (我是一个菜鸟,我花了大约2个小时才找到它。)
答案 4 :(得分:2)
S.D。的解决方案对我不起作用。 在我的案例中,我使用了 AppCompat v-21 库。 我只是添加
android:layout_height="@dimen/actionBarSize"
android:minHeight="@dimen/actionBarSize"
到我的布局文件,它可以工作。