【问题标题】:How to style Android's AppBar action text?如何为 Android 的 AppBar 操作文本设置样式?
【发布时间】:2015-05-20 18:49:14
【问题描述】:

我需要更改 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 上运行应用程序,结果符合需要:

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

我挖掘得更深一点,发现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>

和第一次一样,结果在 Lollipop 上是需要的,对以下任何版本都没有影响。

那么,问题是:如何正确更改操作菜单项的文本大小?

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

【问题讨论】:

    标签: android styling appbar


    【解决方案1】:

    看来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>
    

    【讨论】:

      猜你喜欢
      • 2020-07-17
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      相关资源
      最近更新 更多