使ActionBar标题为大写

时间:2015-03-29 18:32:52

标签: android android-actionbar android-actionbar-compat

如何将ActionBar标题设为大写?一些答案建议使用<item name="android:textAllCaps">true</item>但是当我将它放在actionBar样式或actionBar&#39; s titleTextStyle中时,这没有任何效果。它只有在我使用AppTheme风格时才有效,但是在我的应用程序中也有很多东西也是我不想要的。

我的风格:

<style name="AppTheme" parent="AppBaseTheme">
    <!-- snip snip -->
    <item name="android:actionBarStyle">@style/NewActionBar</item>
</style>

<style name="NewActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="android:background">@color/text_pink</item> <!-- no effect -->
    <item name="android:titleTextStyle">@style/NewActionBarTitle</item>
    <item name="android:displayOptions">showHome|showTitle</item>
    <item name="android:textAllCaps">true</item> <!-- no effect -->
</style>

<style name="NewActionBarTitle">
    <item name="android:textSize">@dimen/tiny_text_size</item> <!-- no effect -->
    <item name="android:textAllCaps">true</item> <!-- no effect -->
</style>

为什么NewActionBarNewActionBarTitle样式似乎无论我放入什么都没有效果?我的风格或动作栏或其他什么问题?

修改:我完全删除了样式NewActionBarNewActionBarTitle(以及AppTheme样式中对它们的引用),操作栏看起来完全相同。所以有些东西被破坏了它可能是什么?

1 个答案:

答案 0 :(得分:5)

您需要在操作栏标题的文本外观上设置android:textAllCaps="true",而不是操作栏样式本身或基本活动主题。

<style name="AppTheme" parent="AppBaseTheme">
    ...
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
</style>

<style name="Widget.MyApp.ActionBar.Solid"
       parent="Widget.AppCompat.ActionBar.Solid">
    <item name="titleTextStyle">@style/TextAppearance.MyApp.Widget.ActionBar.Title</item>
</style>

<style name="TextAppearance.MyApp.Widget.ActionBar.Title"
       parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textAllCaps">true</item>
</style>