前言
此问题多半是加入了Button等可以接收单击事件和可以接收焦点的控件导致。
ExpandableListView控件的单击事件的要求大多数大神都已经说过了
1.BaseExpandableListAdapter的重写方法isChildSelectable必须为true。
2.ExpandableListView控件实现ExpandableListView.OnChildClickListener接口,绑定单击事件。
3.当ExpandableListView的子项是Button,CheckBox等本身聚焦的控件,将控件的setFocusable方法设为false,禁用控件的聚焦
自测内容
ExpandableListView的子项是本身具有聚焦的控件时,比如Button控件,如果ExpandableListView子项单击事件没有成功,单独禁用setFocusable后或者单独禁用setClickable还是没有成功,那就需要同时设置这两个属性为false就可以了
可在两处设置Focusable和Clickable
1.在自己的ExpandableListView的Adapter扩展类中的getChildView方法中添加
childViewHolder.btnChild.setFocusable(false);
childViewHolder.btnChild.setClickable(false);
2.在xml子布局中的Button属性中添加
<Button
android:id="@+id/btnNoise"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:focusable="false"
android:clickable="false"
/>
注意:以防万一,请将子布局中的控件全部设置这两个属性为false