2014-10-23 7 views
9

Ecco come ho impostato i miei pulsanti.Impossibile sovrascrivere textAllCaps per i pulsanti su stile in Android 21

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

Questo è il mio stile nella cartella dei valori.

<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> 

E questo è il mio stile sulla cartella valori-V21

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

ma il testo è sempre maiuscolo sui pulsanti. Se lo imposto direttamente sul pulsante tornerà alla normalità, però. Ho cambiato il colore per vedere se lo stile per api 21 era in uso e lo era, il colore del testo del pulsante è diventato nero su api 21. So che il tema predefinito imposta textAllCaps come true per i pulsanti perché google pensava che sarebbe stato superduper -cool, ma non dovrebbe dare la priorità al mio stile?

Modifica: mai più, ho dimenticato di scrivere "android:" sullo stile.

risposta

22

Ho avuto lo stesso problema, e questo è ciò che ha funzionato per me:

<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> 

Spero che questo aiuti.

0

Assicurarsi che la seguente riga non dice "android:" prima "textAllCaps"

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

0

tuo stile su cartella valori-V21 il suo corretto

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

ma nello stesso tempo Api livello sopra 21 il tuo stile incolla su valori-v19 e anche cartella di stile xml

0

in styles.xml

Includere lo stile pulsante nel vostro AppTheme (che sarà utilizzato in Application o Attività)

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

creare lo stile pulsante

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

Se hai trovato qualsiasi problema si prega di lasciare conoscermi.

Problemi correlati