2009-08-27 5 views
49

Quand j'appelle setEnabled(false) pour un objet TextView la couleur du texte ne change pas. Je m'attendais à ce qu'il devienne gris. Si je supprime la ligne de android:textColor dans mon fichier XML, il revient à la normale.mode texte Android couleur ne change pas quand il est désactivé

Des idées?

+0

Voici la solution: D http://stackoverflow.com/questions/4692642/android-customized-button-changing-text-color – cesards

+0

Vous devez définir manuellement la couleur du texte à tout ce que vous voulez. Au moins, c'est ce que j'ai dû faire. – MattC

Répondre

121

Je pense que ce qui se passe est que puisque vous redéfinissez la couleur de texte par défaut, elle n'hérite pas des autres styles de texte. Essayez de créer un ColorStateList et de lui affecter l'attribut textColor plutôt qu'une couleur.

Dans un fichier de couleur (par exemple, résolution/couleur/exemple.xml):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:color="@color/disabled_color" /> 
    <item android:color="@color/normal_color"/> 
</selector> 

puis dans votre mise en page:

<TextView 
    android:text="whatever text you want" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/example" /> 

Remarque, je n'ai pas fait dans un certain temps et Je saisis beaucoup de choses de la mémoire, donc il faudra peut-être un peu peaufiner. Les documents ColorStateList (liés ci-dessus) ont un exemple plus étoffé pour le fichier XML de couleur.

+1

hey merci, cela a beaucoup aidé. – Matthias

+0

Heureux d'aider :) –

+0

Super, merci! – Tomasz

Questions connexes