2010-08-11 3 views
15

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

Я пробовал:

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

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

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

+0

Это сработало для меня -> http: // stackov erflow.com/questions/3464599. – adstro

+0

Полезно, что нить не отвечает на мой заявленный вопрос. – Justin

ответ

2

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

+3

не решил это для меня (я даже не поставил его на первое место). У меня есть интерактивные элементы * внутри * заголовка, но сам заголовок не должен быть интерактивным. – Matthias

+0

OnGroupClickListener (null); –

14

Может быть It`s слишком поздно, я использую onGroupCollapseListener в деятельности и реализации onGroupCollapse метода (ExpandView является ExpandableListView)

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

Это сработало отлично, спасибо. – Davor

+0

Я думаю, что это не должно быть реализовано! Андрюс лучше! – Phuong

28

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

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

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

+0

совершенный код, если вы хотите отключить клик по конкретному условию –