Wenn ich setEnabled(false)
nach einem TextView
Objekt rufe, ändert sich die Textfarbe nicht. Ich habe erwartet, dass es in grau geändert wird. Wenn ich die Zeile android:textColor
in meiner XML-Datei entferne , wird sie wieder normal.
Irgendwelche Ideen ?
Antworten:
Ich denke, was passiert, ist, dass Sie die anderen Textfarbenstile nicht erben, da Sie die Standardtextfarbe überschreiben. Versuchen Sie, eine ColorStateList dafür zu erstellen und das textColor-Attribut anstelle einer Farbe festzulegen.
In einer Farbdatei (z. B. res / color / example.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>
dann in Ihrem Layout:
<TextView android:text="whatever text you want" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/example" />
Beachten Sie, dass ich dies seit einiger Zeit nicht mehr getan habe und viel davon aus dem Speicher schreibe, sodass möglicherweise einige Anpassungen erforderlich sind. Die ColorStateList-Dokumente (oben verlinkt) enthalten ein ausführlicheres Beispiel für die Farb-XML-Datei.
quelle