2014-10-23 1 views
9

So stelle ich meine Tasten ein.kann TextAllCaps für Schaltflächen auf Stil unter Android 21 nicht überschreiben

<Button 
    android:id="@+id/button_login" 
    style="@style/ButtonStyle" 
    android:text="@string/button_login" /> 

Dies ist mein Stil auf Werte Ordner.

<style name="ButtonStyle" parent="ButtonStyleBase" /> 

<style name="ButtonStyleBase"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_marginTop">@dimen/padding</item> 
    <item name="android:textSize">@dimen/font_regular</item> 
    <item name="android:textColor">@color/text_regular</item> 
    <item name="android:background">@drawable/shape_clickable</item> 
</style> 

Und das ist mein Stil auf Werte-v21 Ordner

<style name="ButtonStyle" parent="ButtonStyleBase"> 
    <item name="textAllCaps">false</item> 
    <item name="android:textColor">#000000</item> 
</style> 

Aber der Text wird immer in Großbuchstaben auf Tasten. Wenn ich es direkt auf die Schaltfläche setze, wird es wieder normal. Ich änderte die Farbe, um zu sehen, ob der Stil für api 21 verwendet wurde, und es war, änderte die Knopftextfarbe auf api 21 zu schwarz. Ich weiß, dass das Standard-Thema textAllCaps als wahr für Schaltflächen setzt, weil Google dachte, es wäre super-duper -cool, aber sollte es nicht meinen Stil priorisieren?

Edit: Nemem, ich habe vergessen, "android:" auf den Stil zu schreiben.

Antwort

22

hatte ich das gleiche Problem, und das ist was für mich gearbeitet:

<style name="Theme.CustomTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:textAppearanceButton">@style/CustomTheme.ButtonTextAppearance</item> 
</style> 

<style name="CustomTheme.ButtonTextAppearance" parent="@style/Base.TextAppearance.AppCompat.Button"> 
    <item name="textAllCaps">false</item> 
    <item name="android:textAllCaps">false</item> 
</style> 

Hoffnung, das hilft.

0

Stellen Sie sicher, dass die folgende Zeile nicht "android:" sagt vorher "textAllCaps"

<item name="textAllCaps" tools:targetApi="ice_cream_sandwich">false</item>

0

Ihr Stil auf Werte-v21 Ordner seine korrekte

<style name="ButtonStyle" parent="ButtonStyleBase"> 
    <item name="textAllCaps">false</item> 
    <item name="android:textColor">#000000</item> 
</style> 

aber gleichzeitig Api level über 21 Ihre Stil einfügen auf Werte-v19 und auch Stil Ordner xml

0

In styles.xml

Fügen Sie die Schaltfläche Stil in Ihrem AppTheme

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
<item name="android:buttonStyle">@style/MyButton</item>  
</style> 

erstellen Knopfart

<style name="MyButton" parent="Widget.AppCompat.Button"> 
     <item name="textAllCaps">false</item> 
     <item name="android:textAllCaps">false</item> 
    </style> 

Wenn Sie ein Problem gefunden lass (Welche in Anwendung oder Aktivität verwendet wird) Ich weiß es.

Verwandte Themen