2011-02-07 4 views
4

Возможно ли сохранить стиль поведения элемента списка по умолчанию в раскрывающемся списке ListListView при представлении группового представления, содержащего больше, чем просто TextView. Поведение, о котором я говорю, - это то, где нажатие на элемент меняет цвет фона на желтый.Как можно сохранить поведение поведения элемента списка по умолчанию для ExpandableListView при предоставлении группового представления, содержащего больше, чем просто TextView?

Каждый раз, когда я предоставляю групповой вид, который содержит, например, TextView и Button, я теряю поведение.

ответ

1

Включая любое представление, которое можно сфокусировать в макете пользовательского списка, приведет к тому, что элемент списка перестанет отвечать на нажатия. При реализации такого вида пользовательского представления свойство focusable каждого представления в представлении элемента списка должно быть установлено в false. Это можно сделать либо в xml, либо в коде. За одним исключением - ImageButton не будет отвечать на настройку своего настраиваемого поля через xml. Он работает только в коде с ImageButton.

<TextView 
    android:id="@+id/text1" 
    android:focusable="false" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

Или

imageButtonInstance.setFocusable(false); 
+0

Спасибо за это, но я должен сказать, что это совершенно нелепо. Я потерял хорошие 2 часа, потому что эта вещь не работает через XML, но должна быть установлена ​​из кода. – cngkaygusuz

2

Другой вариант установки корневой ViewGroup блокировать фокус для представлений детей.

Пример: <LinearLayout ... android:descendantFocusability="blocksDescendants" />