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

前言:

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

 

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

Step 1:

检查你的Adapter里是否有以下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);

 

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("好用");
                 // ...
                }
            });

 

你可能感兴趣的:(BUG,android,bug)