Android中ExpandableListView子项单击事件没有响应

前言

此问题多半是加入了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值