web-dev-qa-db-ja.com

Android無効にするとテキスト表示の色は変わりません

TextViewオブジェクトに対してsetEnabled(false)を呼び出しても、テキストの色は変わりません。グレーに変わると思っていました。 XMLファイルのAndroid:textColorの行を削除すると、通常の状態に戻ります。

何か案は ?

56
henri51

何が起こっているのかと思うのは、デフォルトのtextcolorをオーバーライドしているため、他のtextcolorスタイルを継承していないからです。 ColorStateList を作成し、textColor属性を色ではなくそれに設定してみてください。

カラーファイル(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>

次に、レイアウトで:

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

注意してください、私はしばらくの間これをしていないし、私はメモリからこれの多くを入力しているので、少し調整が必要な場合があります。 ColorStateListドキュメント(上記にリンク)には、カラーXMLファイルのより具体的な例があります。

137
Jeremy Logan