[CymChad/BaseRecyclerViewAdapterHelper]你好,刷新数据后重新设置setNewData方法数据错乱

2024-08-20 388 views
3

第一次设置数据是没问题的,但是刷新后重新设置数据就会有数据错乱出现,期待您的回复,谢谢!!!

回答

6

最好把代码贴出来 作者好定位问题.

9

二次调用BaseQuickAdapter 的 setNewData()方法 就会出现数据显示错乱,具体代码我也只是调用这个方法重载数据没有其他的哦,所以想说是不是有遗留问题,谢谢您的回复!

5

@minmei 不客气,我也是使用者.我的意思是你最好说的具体一点.比如是下拉刷新后还是上拉加载后.是否调用了loadMoreComplete等相关方法.数据错乱具体是什么情况.尽量描述清楚一些.也方便作者能一次性的了解到你的问题.并及时解决

8

你好,具体流程就是:第一次进到界面获取数据调用adapter的setNewData()方法设置数据,然后根据自己的操作流程获取新的数据覆盖当前列表继续使用setNewData()方法,但是就出现了列表的第一条数据还是未更新之前的第一条数据其他的信息显示正常,列表使用recycclerview,以上就是本次操作流程,loadMoreComplete finishRefresh 都已调用,谢谢!

4

我没遇到过类似问题,帮不到你了.不好意思. 你可以尝试一下调用getData的clear方法,然后再用getData的addAll方法来代替setNewData设置新数据. 试一下 看看能解决不 如果能解决就先解燃眉之急. 不能解决就等作者回复.

6

数据错乱跟setNewData的参数有关,请检查data数据

2

@MahatmaSun 多谢回复试了你方法了还是不可以就是第一条数据不刷新 @1109993488 数据检查了绝对没问题的,每次刷新数据第一条的数据总是会显示上一次的列表中第一条数据,这个试了很多次都是这样 好可惜,如果没有解决方法,就只能换做其他方法了......

4

@minmei 不客气,一起学习. 我建议你可以分段试试, 先clear 看看显示结果 是不是清空了. 如果清空了 再调用addAll方法看看数据是不是还是第一条有问题. 这样看能定位到问题在哪儿不.

9

可以抽出有问题的demo吗?这样便于我们这边调试,更快的找到并解决问题。

7

遇到了同样的问题,请问楼上解决了吗

3

核对了前后2次的数据源,是完全相同的,第一次setNewData没问题,第二次setNewData后固定的position有一条数据错乱,这个也不存在控件复用的问题,因为还未满一屏

2

@po1arbear 你好没有解决,我的数据源也是没有问题的检查了好几遍,所以感觉这个setNewData的确是有问题的, @CymChad 由于我项目设计数据较多所以不便贴出demo来。最后是重新setadapter来做的,虽然有点傻了(所有的addAll,setnewData都试了),但目前能解决我的需求,希望能帮到你。。

4

@minmei 你好,我昨天比较忙,今天把复现的demo整理好了,我发你163邮箱吧@CymChad

6

单独抽出来一个demo,数据可以写假数据,上次到github,给我一个链接就好了。

5
if (!TextUtils.isEmpty(extra_img)) {
    Glide.with(mContext).load(R.drawable.sample_footer_loading).into((ImageView) baseViewHolder.getView(R.id.iv_extra));
} else {
    //需要在这里设置无图片的时候,不然重用就会有问题
}
7

@1109993488 问题解决了,非常感谢!

1

我的也是第一条数据会变 需求是判断是否有货无货置灰 但一刷新第一个就会变灰 点击事件去拿数据的时候数据是正确的 而且有两个类似fragment 第一个没问题 这是第二个@1109993488

6

我也遇到同样的问题,但不是因为未设置默认图片的原因,期待您的回复,谢谢!!!Demo