Селектор наследует - PullRequest
       21

Селектор наследует

9 голосов
/ 01 декабря 2011

Есть ли способ наследовать от уже известных selector s в Android?

Я хотел бы расширить EditText и добавить пользовательское состояние, насколько я понял, делая это, используя метод onCreateDrawableState(). Когда в игру вступает селектор, есть ли простой способ использовать селекторы по умолчанию и просто добавить мои, а не определять их снова?

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.my.package">

<item android:state_enabled="false" android:drawable="@drawable/login_textfield_bg_error" />
<item android:state_window_focused="false" android:drawable="@drawable/login_textfield_bg_error">
<item android:state_pressed="true" android:drawable="@drawable/login_textfield_bg_error" />
<item android:state_selected="true" android:drawable="@drawable/login_textfield_bg_error" />
<item app:errorBackground="@drawable/login_textfield_bg_error" />
</selector>

1 Ответ

4 голосов
/ 06 сентября 2012

Возможно, я неправильно понимаю, но, может быть, вы можете просто делегировать им полномочия?

Итак, в вашем случае у вас есть пользовательское состояние, поэтому, если вы определяете только те случаи, когда применяется ваше пользовательское состояние, вы не можете сделать это:

<selector xmlns:android="..." xmlns:app="...">
  <item app:custom_state="true" android:drawable="@drawable/the_one_care_about"/>
  <item android:drawable="@android:drawable/editbox_background"/>
</selector>

Таким образом, это в основном состояния, для состояний, где мое пользовательское состояние истинно, показывать мой пользовательский фон ... однако для всех других состояний, ведут себя так же, как этот селектор. У этого селектора просто есть инструкции для других состояний, поэтому следуйте им. Таким образом, переопределение не требуется, и поскольку состояния оцениваются в порядке сверху вниз, технически вам не нужно ничего переопределять, вы просто заявляете, что хотите определить только подмножество состояний и делегировать этот другой объект рисования (что происходит с быть другим селектором) для всего другого контента. Это помогает?

...