fragon
fragon

Reputation: 3471

Lollipop capitalizes Buttons' text in my app

I am expreiencing a strange problem with my application. When I am testing it on a real device (with Android 4.4.4) all my Buttons' text fields look how I wanted (lower case letters). But when I launch my application on an emulator (Android 5.0.1) all Button texts fields are capitalized. What is the reason of such behaviour? Some example Buttons from my app:

Example Button 1:

    <Button
        android:id="@+id/button5"
        android:layout_width="match_parent"
        style="?android:attr/borderlessButtonStyle"
        android:layout_height="wrap_content"
        android:text="@string/finish"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
     />

Example button 2:

    <Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        style="?android:attr/borderlessButtonStyle"
        android:layout_height="wrap_content"
        android:text="@string/flower"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        android:drawableLeft="@drawable/flower"
        android:layout_weight=".75"
        />

What is the solution to this problem. I want my app to look the same on all sw versions.

Upvotes: 3

Views: 7456

Answers (2)

TharakaNirmana
TharakaNirmana

Reputation: 10353

Actually this is possible:

new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle)

StackedAlertDialogStyle:

  <style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item>
    </style>

    <style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
        <item name="android:layout_gravity">right</item>
        <item name="android:textAllCaps">false</item>
    </style>

Now you can see the buttons not in capital.

Upvotes: 4

Alex Lockwood
Alex Lockwood

Reputation: 83303

Starting with Android 5.0, Buttons automatically have their text capitalized. This is in accordance with the new material design guidelines, which you can find here.

If you want to force your buttons to display the text as it does in previous platform versions, you can set android:textAllCaps="false" in your XML. However, I would recommend against this. Users expect their apps to look material in Android Lollipop, and that means they expect your buttons to display text in all capital letters (even if your app displays the text differently in previous platform versions).

Upvotes: 20

Related Questions