在使用BaseMultiItemQuickAdapter时,在Adapter中添加点击事件,发现某个类型在视图中被重复多少次, 此类型下的控件的点击事件就会被响应多少次。。以前用原生的写,好像不会出现这个问题。。
[CymChad/BaseRecyclerViewAdapterHelper]听说过视图会被复用,点击事件的响应也会被复用??
回答
版本,代码,复现场景,demo或gif图片。
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
}
});
if (!StringUtil.isEmpty(item.getData().getImg())) {
initHeadView(threeImgAdapter, item);
}
break;
您好,这是我Adapter中的一个类型,在Adapter中设置点击事件,Log日记就会被打印多次
版本号:#2.9.16
你使用 threeImgAdapter. setOnItemClickListener 来设置点击事件看下还会不会有问题,addOnItemTouchListener他是会累计添加的。
谢谢大佬,问题已经解决。。。刚还在想把点击事件移到adapter之外,来试试解决这个问题。。。 刚想了下,不知道这个建议可不可行,希望能在介绍adapter.setOnItemClickListener mRecyclerView. addOnItemTouchListener这两种方式能否再详细点,如果不看源码的话,都不会知道mRecyclerView. addOnItemTouchListener会类型添加,这样给像我这种对于还在摸索阶段更加容易犯错
恩 可以,后续我会完善文档。感谢建议。
佬大,点击事件有些类点击不了,我用以前版本的就可以点击.setOnItemClickListener adapter,addOnItemTouchListener也加这了这个.
还有下拉刷新和上拉加载总是会报错, java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;
@huagnzhiqiang #913
item数据错乱,我点赞,当我滑动时候 没有点赞的也会点赞.很多数据都出现错乱了
@huagnzhiqiang 很明显这是数据缓存问题,具体你可以看文档有解决方案。
看你文档吗?我在你的文档中没有发现有解决的方法.是要用setTag()吗
我想自定义item的数量,但是重写getItemCount没有效果