Android ActionBar MenuItem LowerCase Android ActionBar MenuItem LowerCase android android

Android ActionBar MenuItem LowerCase


Solution for native ActionBar implementation:

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="MyTheme" parent="android:Theme.Holo">        <item name="android:actionMenuTextAppearance">@style/MyMenuTextAppearance</item>    </style>    <style name="MyMenuTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Menu">        <item name="android:textAllCaps">false</item>    </style></resources>

If you are using ActionBarSherlock there are two different approaches:

1) Create boolean resource abs__config_actionMenuItemAllCaps and set it to false:

<?xml version="1.0" encoding="utf-8"?><resources>    <bool name="abs__config_actionMenuItemAllCaps">false</bool></resources>

2) Or create theme with overriden actionMenuTextAppearance and use it in AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="MyTheme" parent="Theme.Sherlock">        <item name="actionMenuTextAppearance">@style/MyMenuTextAppearance</item>        <item name="android:actionMenuTextAppearance">@style/MyMenuTextAppearance</item>    </style>    <style name="MyMenuTextAppearance" parent="TextAppearance.Sherlock.Widget.ActionBar.Menu">        <item name="android:textAllCaps">false</item>    </style></resources>

PLEASE NOTE: there is bug in ActionBarSherlock that forces MenuItem to be upper case on pre-ICS (https://github.com/JakeWharton/ActionBarSherlock/issues/969). I've submitted patch but it is not merged at the moment. For now you can use my fork: https://github.com/alexander-mironov/ActionBarSherlock/tree/dev, I will update this answer when my code is merged in the main repository.

UPDATE: my fix has been merged into main ActionBarSherlock repository.


Add the following to one of your values xml files -

<bool name="abc_config_actionMenuItemAllCaps">false</bool>


Just to complete the answer, if you're using AppCompat the parent style is:

<style name="MyMenuTextAppearance" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">    <item name="android:textAllCaps">false</item></style>