如何设置Android的AppBar动作文字?

时间:2015-05-20 18:49:15

标签: android styling appbar

我需要在AppBar / Toolbar中更改操作按钮的文字大小。它应该是14sp,但在这个例子中我将使用20sp,因为它更明显。我正在使用appcompat-v7 22.1.1

起初我尝试使用主题属性android:actionButtonStyle

<style name="FirstAttemptTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionButtonStyle">@style/Custom.Widget.AppCompat.Light.ActionButton</item>
</style>

<style name="Custom.Widget.AppCompat.Light.ActionButton" parent="Widget.AppCompat.Light.ActionButton">
    <item name="android:textSize">20sp</item>
</style>

然后我在Lollipop上运行了应用程序,结果是根据需要:

enter image description here

但后来我使用了较低版本的模拟器,我的主题没有效果:

enter image description here

我深入挖掘并发现abc_action_menu_item_layout.xml用于操作菜单项,它有一行android:textAppearance="?attr/actionMenuTextAppearance" 所以我尝试修改这个主题属性(我还必须添加textStyle:bold):

<style name="SecondAttemptTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionMenuTextAppearance">@style/Custom.TextAppearance.AppCompat.Widget.ActionBar.Menu</item>
</style>

<style name="Custom.TextAppearance.AppCompat.Widget.ActionBar.Menu" parent="TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="android:textSize">20sp</item>
    <item name="android:textStyle">bold</item>
</style>

与第一次一样,结果是棒棒糖所需,对以下任何版本都没有影响。

所以,问题是:如何正确更改操作菜单项的文字大小?

PS:我在github创建了一个简单的项目来阐述我的问题

1 个答案:

答案 0 :(得分:3)

actionButtonStyleactionMenuTextAppearance似乎应该在没有android:命名空间的情况下使用。

在支持库的values-v21 / values.xml中可以看到,Lollipop使用系统主题中的属性(注意android:前缀),这就是我尝试使用它的原因:

<style name="Base.V21.Theme.AppCompat.Light" parent="Base.V7.Theme.AppCompat.Light">
    ...
    <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
    ...
</style>