[CymChad/BaseRecyclerViewAdapterHelper]听说过视图会被复用,点击事件的响应也会被复用??

2024-08-08 306 views
2

在使用BaseMultiItemQuickAdapter时,在Adapter中添加点击事件,发现某个类型在视图中被重复多少次, 此类型下的控件的点击事件就会被响应多少次。。以前用原生的写,好像不会出现这个问题。。

回答

5

版本,代码,复现场景,demo或gif图片。

6

case MultiItemHome.THREE_IMG://单排三张图片 RecyclerView rv_home_three_img = (RecyclerView) helper.getView(R.id.rv_home); OneImgRecyAdapter threeImgAdapter = new OneImgRecyAdapter(R.layout.rv_home_one_img, item.getData().getContent()); rv_home_three_img.setAdapter(threeImgAdapter); rv_home_three_img.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)); rv_home_three_img.addOnItemTouchListener(new com.chad.library.adapter.base.listener.OnItemClickListener() { @Override public void onSimpleItemClick(BaseQuickAdapter adapter, View view, int position) { RxHomeContentBean rxHomeContentBean = ((List) adapter.getData()).get(position); Log.i(TAG, "onSimpleItemClick: " + Base64Utils.decode(rxHomeContentBean.getUrl().getId())); JumpUtils.Jump2Activity(((Activity) mContext), rxHomeContentBean.getUrl().getType(), Base64Utils.decode(rxHomeContentBean.getUrl().getId()));

                }
            });
            if (!StringUtil.isEmpty(item.getData().getImg())) {
                initHeadView(threeImgAdapter, item);
            }
            break;

您好,这是我Adapter中的一个类型,在Adapter中设置点击事件,Log日记就会被打印多次

版本号:#2.9.16

6

你使用 threeImgAdapter. setOnItemClickListener 来设置点击事件看下还会不会有问题,addOnItemTouchListener他是会累计添加的。

1

谢谢大佬,问题已经解决。。。刚还在想把点击事件移到adapter之外,来试试解决这个问题。。。 刚想了下,不知道这个建议可不可行,希望能在介绍adapter.setOnItemClickListener mRecyclerView. addOnItemTouchListener这两种方式能否再详细点,如果不看源码的话,都不会知道mRecyclerView. addOnItemTouchListener会类型添加,这样给像我这种对于还在摸索阶段更加容易犯错

6

恩 可以,后续我会完善文档。感谢建议。

8

佬大,点击事件有些类点击不了,我用以前版本的就可以点击.setOnItemClickListener adapter,addOnItemTouchListener也加这了这个.

2

还有下拉刷新和上拉加载总是会报错, java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;

2

@huagnzhiqiang #913

2

item数据错乱,我点赞,当我滑动时候 没有点赞的也会点赞.很多数据都出现错乱了

5

@huagnzhiqiang 很明显这是数据缓存问题,具体你可以看文档有解决方案。

6

看你文档吗?我在你的文档中没有发现有解决的方法.是要用setTag()吗

8

image

6

我想自定义item的数量,但是重写getItemCount没有效果