Отключить свертывание ExpandableListView

Поведение ExpandableListView по умолчанию - это свернуть группу при щелчке по заголовку. Возможно ли предотвратить это?

Я пробовал:

  • Настройка OnTouchListener в списке. Это мешает прокрутке.
  • Установка OnGroupClickListener в списке (в onCreate()). Это работает для всех кликов после первого.

Кто-нибудь еще это сделал? Почему OnGroupClickListener может пропустить первый клик?

Заранее благодарим за ваши предложения.

Ответы

Ответ 1

Кажется, проблема заключалась в том, что в заголовке группы и в наборе OnGroupClickListener есть как настраиваемый элемент. Удаление слушателя решило мою проблему.

Ответ 2

Вы можете игнорировать щелчок по таким элементам группы, как это:

mMyExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
  @Override
  public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
      // Doing nothing
    return true;
  }
});

Ответ 3

Возможно, уже слишком поздно, я использую onGroupCollapseListener в действии и реализую метод onGroupCollapse. (expandView - ExpandableListView)

@Override
public void onGroupCollapse(int collapseIndex) {
    expandView.expandGroup(collapseIndex);
}

Ответ 4

Вы можете использовать этот код для элемента, для которого вы хотите отключить нажатие: {convertView.setClickable(false);}