如何将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>
为什么NewActionBar
和NewActionBarTitle
样式似乎无论我放入什么都没有效果?我的风格或动作栏或其他什么问题?
修改:我完全删除了样式NewActionBar
和NewActionBarTitle
(以及AppTheme
样式中对它们的引用),操作栏看起来完全相同。所以有些东西被破坏了它可能是什么?
答案 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>