ExpandableListView - держать выбранный дочерний элемент в «нажатом» состоянии

Я использую 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 состояние не «активируется» после нажатия дочернего элемента.

Любая помощь приветствуется. Спасибо!

16
задан MasterScrat 27 September 2017 в 16:01
поделиться