Как вызвать селекторы из вида компоновки?
Задача
Предположим, что у вас есть вид внутри вида макета, и вы хотите, чтобы каждое событие касания на макете влияло на селектор фона вида.
Например , при касании макета селектор вида выберет состояние state_pressed.
Что я пробовал
Я читал о duplicateParentState и addStatesFromChildren, но я думаю, что это противоположно тому, что я ищу.Я также пытался использовать события раскола, но это не помогло.
Вопрос
Как вы это делаете?
Кроме того, что следует делать, если макет находится внутри listView (как элемент внутри него) ?
1 ответ:
Рассмотрим, что у вас есть прядильщик внутри линейной компоновки. Сделать фокус свойств зрения(вот это спиннер) в false. А onClick линейной компоновки вызовет performClick on view (spinner в данном случае).
Правка:
В Прослушивателе изменения фокуса линейной компоновки, если он имеет фокус, вызовите requestFocus on view. Вы можете следовать тому же методу для других состояний зрения
Другой метод:
Не применяйте никакого селектора к макету (linearlayout в этом случае) и добавьте любой селектор, который вы хотите посмотреть (спиннер в данном случае). Для вида добавьте этот параметр
android:duplicateParentState="true"