use*_*041 32 android android-actionbar
我想改变动作栏的大小.我尝试过以下编码.
<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>
Run Code Online (Sandbox Code Playgroud)
但是动作栏的大小并没有改变.还有另外一种方法吗?我正在使用api 11级.
谢谢.
S.D*_*.D. 73
使用height属性,actionBarSize如果是其他东西.
<item name="android:height">@dimen/bar_height</item>
Run Code Online (Sandbox Code Playgroud)
Explanantion:
从ActionBar的源代码:
mContentHeight = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Run Code Online (Sandbox Code Playgroud)
我们可以看到它R.styleable.ActionBar_height被用于高度.Stylable属性名称生成为component_attribute(如果您曾经使用过自定义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>
Run Code Online (Sandbox Code Playgroud)
现在可以使用android:theme="@style/AppTheme"in <application>标签将此样式设置为app主题AndroidManifest.xml.
请注意重复条目的使用
<item name="android:actionBarStyle">
<item name="actionBarStyle">
Run Code Online (Sandbox Code Playgroud)
没有android命名空间的那些用于支持兼容性库和本机属性.这些属性中的一些在旧版本的android命名空间下不存在并且属于支持库.
在其他一些地方,您需要使用appnamespace(xmlns:app="http://schemas.android.com/apk/res-auto"),例如app:showAsAction="always"在菜单xml文件中.
2015年4月更新
AppCompat Library v22也可用.仔细阅读文章,了解新内容.
小智 13
简单地将actionBarSize项目置于MyTheme样式下,如下所示:
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarSize">15dp</item>
<item name="actionBarSize">15dp</item>
...
</style>
Run Code Online (Sandbox Code Playgroud)
说明:
在R.styleable中,我们看到它R.styleable.Theme_actionBarSize是在Theme级别定义的可样式属性.
另外,从源代码res/values/styles.xml我们看到如何actionBarSize设置height:
<style name="Widget.ActionBar">
...
<item name="android:height">?android:attr/actionBarSize</item>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83249 次 |
| 最近记录: |