Я использую ExpandableListView в левом навигаторе для экрана планшета.
Когда пользователь нажимает дочерний элемент группы в моем расширяемом списке, я хотел бы сохранить дочерний элемент в нажатом состоянии, чтобы пользователь знал, для какого ребенка отображается содержимое правой руки.
Для ListView я смог выполнить этот эффект с помощью этой строки в коде:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
а затем применяя этот селектор:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/menu_item_pressed" />
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/menu_item_normal" />
<item android:state_pressed="true" android:drawable="@drawable/menu_item_pressed" />
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/menu_item_pressed" />
"state_activiated" истинно в элементе listView после нажатия элемента listView.
Я надеялся, что эта же техника будет работать для моего расширяемогоListView, но это не так. Я использовал:
getExpandableListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
а затем использовал тот же селектор выше, но он не работает. Я также пробовал другие состояния, такие как state_selected и state_checked, и они тоже не работают.
Селектор выше правильно применяет нажатое и не нажатое состояние. Похоже, что при использовании ExpandableListView состояние не активируется после нажатия дочернего элемента.
Любая помощь приветствуется. Спасибо!