解决:BaseQuickAdapter.setOnItemChildClickListener 失效点击没反应、点击失效的问题

前言:

在发这篇博客之前我确实对BaseQuickAdapter的各种OnItemClick、OnItemLongClick等方法都抱有着不咋好用的看法,但是这篇博客发完之后,我会好好利用这些方法,实在是太好用了,啧啧,真香..

长话短说,直接丢解决方案,不好使你找我。

Step 1:

检查你的Adapter的convert方法里是否有以下AddOnClickListener的方法?

        // 设置监听
        helper
                .addOnClickListener(R.id.iv_back)
                .addOnClickListener(R.id.iv_user_avatar)
                .addOnClickListener(R.id.tv_comment_count)
                .addOnClickListener(R.id.iv_favorite)
                .addOnClickListener(R.id.lav_focus)
                .addOnClickListener(R.id.tv_shared)
                .addOnClickListener(R.id.tv_speak);
// 新版SDK设置监听方法,此方法设置在Activity里或Fragment
adapter.addChildClickViewIds(
            R.id.tv_item_good,
            R.id.tv_item_collection,
            R.id.tv_item_share,
            R.id.iv_more
        );

 

Step 2:

麻蛋自从找到问题的所在,我就饺子这个问题实在是太幼稚了,我都不好意思贴出来解决方案,检查你Activity或Fragment的Adapter在适当的时候是否set了Listener? 

        mAdapter.setOnItemChildClickListener(this);

以上俩步骤其实就已经解决问题了,除非你嵌套了很多层的Adapter把自己搞懵了,不然设置完监听和回调之后绝壁就好使了,如果还是不好使,那么看下面:

Step 3:

mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
                @Override
                public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
                    LinearLayout layout = (LinearLayout) view.getParent();
                 // RelativeLayout layout = (RelativeLayout) view.getParent();

                    // 完了用你嵌套的布局去找到你点击所在的控件,就OK了
                    TextView tvPrint = layout.findViewById(R.id.tv_print);
                 // ImageView ivCover = layout.findViewById(R.id.iv_cover);

                    tv.setText("好用");
                 // ...
                }
            });

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不强何以成标杆

有钱捧个钱场,没钱捧个人场奥

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值