Search code examples
androidandroiddesignsupportandroid-tablayout

android:textAllCaps="false" not working for TabLayout design Support


I have set android:textAllCaps="false" in my android.support.design.widget.TabLayout thought it is showing the Tab Title in All caps only.

How can I remove all caps?


Solution

  • UPDATE FOR DESIGN LIBRARY 23.2.0+

    The original answer doesn't work with design library 23.2.0 or later. Thanks for @fahmad6 pointed out in comment, in case someone missed that comment, I'll put it here. You need to set both textAllCaps and android:textAllCaps to false to disable all capitalize setting.

    <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
          <item name="textAllCaps">false</item>
          <item name="android:textAllCaps">false</item>
    </style>
    

    ORIGINAL ANSWER

    By default, tabs are created by TabLayout sets the textAllCaps property to be true, you have to define a style making this flag false.

    <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
          <item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
    </style>
    
    <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
          <item name="textAllCaps">false</item>
    </style>