2014-03-11 4 views
0

У меня есть расширяемое представление списка со всем расширенным списком. Я не хочу, чтобы пользователь мог выбирать любые родительские элементы (элементы группы). Я сделал это так, чтобы щелчок по нему не сворачивал список, но не может понять, как сделать элемент невозможен.Как я могу сделать ExpandableListView недоступным?

+0

Это ваша проблема? проверить это [ссылка] [1] [1]: http://stackoverflow.com/questions/5126581/can-i-make-a-listview-item-not-selectable – anuruddhika

+0

нет, к сожалению, у expandablelistview нет isEnabled – Sree

ответ

1

Использовать метод isChildSelectable, чтобы сделать требуемый дочерний элемент кликабельным. Поддержание булевого состояния isChildSelectable в объекте дочерней модели.

@Override 
public boolean isChildSelectable(int groupPosition, int childPosition) { 
    return yourmodel.isChildSelectable; 
} 
+1

Это не срабатывает для групповые (родительские) элементы. Только дети. Так что это действительно не отвечает на вопрос OP (это тоже мой вопрос) – Nilzor

+0

@Nilzor Мой ответ о том, что «не может понять, как сделать элемент невозможен». – Prasad

+1

@Nilzor Создавая групповой клик для прослушивания 'null' и добавляя' android: clickable = "false" 'для компоновки group_item и расширяя каждую группу в методе getGroupView, например ' @Override public Посмотреть getGroupView (int groupPosition, boolean isExpanded, View convertView, родительский элемент ViewGroup) { ((ExpandableListView) parent) .expandGroup (groupPosition); .... return convertView; } ' решит вашу проблему, я думаю – Prasad

0

Я не знаю, что вы уже пробовали, но отключение всего списка сделало невозможным выбрать что-то.

+0

что вы имеете в виду отключить весь список? – Sree

+0

Я имею в виду вызов setEnabled() в ExpandableListView. Интерпретация варьируется в зависимости от класса, но он больше не должен реагировать на клики – 0xDEADC0DE

+0

да, я сделал это в xml и не работал – Sree

0

Вы можете установить заголовок как unclickable перед возвратом вида в getGroupView() адаптера: view.setClickable(true); или view.setFocusable(false); в зависимости от того, что именно вы хотите.

Редактировать: сменить setClickable (false) на setClickable (true). Создание интерактивного представления означает, что вы не можете щелкнуть позади, селектор списка.

+0

Я сделал оба (через xml), но он не работал – Sree

1

если кто-нибудь задавался вопросом, это то, как я ее решил:

Я добавил эти две строки в моем ExpandableListView XML.

android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent" 
Смежные вопросы