Я использую 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.
Я надеялся, что тот же метод сработает для моего expandableListView, но это не так. Я использовал:
getExpandableListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
, а затем использовал тот же селектор, что и выше, но он не работает. Я также пробовал другие состояния, такие как state_selected и state_checked, и они тоже не работают.
Селектор выше правильно применяет нажатое и не нажатое состояние. Однако похоже, что с ExpandableListView состояние не «активируется» после нажатия дочернего элемента.
Любая помощь приветствуется. Спасибо!