кнопка в расширяемом списке Android

у меня есть ExpandableListActivity с пользовательским адаптером.

если пользовательская строка адаптера содержит imageViewall, это делается, но если я изменю это представление с imageView на imageButton, расширяемый список не расширяется.

Есть ли способ поместить кнопку, которую можно щелкнуть, и расширяемый список не потеряет функциональность для расширения?


person thenosic    schedule 26.03.2012    source источник


Ответы (2)


Кнопка не должна фокусироваться. В вашем listView.setOnItemClickListener (не в макете xml!!):

Button button = (Button) view.findViewById(R.id.yourButton); 
//where button is the button on listView, and view is the view of your item on list

button.setFocusable(false);   /// THIS IS THE SOLUTION

button.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
        //button functionalty   ...
    }
});
person SolArabehety    schedule 27.03.2012
comment
(Кнопка) должна быть (Кнопка) - person pahan; 23.01.2013
comment
еще один момент wtf для андроида - person George Pligoropoulos; 10.06.2014
comment
Большое спасибо. Есть ли у вас какое-либо объяснение этому поведению? С моей точки зрения, это не связано с расширением функциональности... - person Kikiwa; 07.08.2014
comment
в моем случае у меня есть ScrollView и такое же поведение в ListView.. когда видимый OnItemClickListener списка больше не работает (возможно, проблема с фокусом или проблема с двойной прокруткой... не ясно) - person Giudark; 16.09.2016

Вы можете установить атрибут focusable не только в классе, но и в xml, по крайней мере, у меня это работает.

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"/>
person Arklur    schedule 25.12.2015