Android - Выбор цвета текста - PullRequest
0 голосов
/ 04 февраля 2020

Я создал пользовательский вид, который содержит TextView внутри, и в какой-то момент мне нужно будет изменить цвет текста.

Использование стандартного declare-styleable с <attr name="android:textColor"/> работает.

  <declare-styleable name="CustomStatusButton">
    <attr name="android:text"/>
    <attr name="android:textColor"/>
    <attr name="android:enabled"/>
  </declare-styleable>

Я использую это для установки цвета:

  val textColor = typedArray.getColor(R.styleable. CustomStatusButton_android_textColor, Color.BLACK)
  tv_button_text.setTextColor(textColor)

-

Теперь мне нужно установить цвет селектора для включенных / отключенных состояний. поэтому я создал это:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="@color/red" android:state_enabled="true" />
  <item android:color="@color/green" android:state_enabled="false" />
</selector>

и

  <CustomStatusButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="SAVE"
      android:textColor="@drawable/button_text_color_selector"
      />

Но это не устанавливает цвет в зависимости от включения / выключения. на вкус только первый красный цвет.

Я что-то упустил?

1 Ответ

0 голосов
/ 04 февраля 2020

Проблема в этом коде

val textColor = typedArray.getColor(R.styleable.CustomStatusButton_android_textColor, Color.BLACK)

Вы пытаетесь получить цвет, но вам нужно получить ColorStateList

...