android - ListView上拉加载更多,如何控制只加载新获取的数据,而不是刷新整个ListView
伊谢尔伦
伊谢尔伦 2017-04-17 17:46:20
[Android讨论组]

ListView上拉加载更多,如何控制只刷新新获取的数据,而不是刷新整个ListView,例如:第一页的数据集合list1,上拉时获取到第二页的数据集合list2,然后list1.addAll(list2), adapter.notifyDataSetChanged();就会把所有数据都重新填充一遍,如果有很多页数据的话,填充就会越来越慢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
阿神

不要用ListView, 用RecyclerView.

其中Adapter.notifyItemInserted();就符合你的要求, 仅插入新增的数据, 使用时注意如果插入的数据是在中间, 导致本来的item的位置发生变化, 要调用mAdapter.notifyItemRangeChanged();通知Adapter

具体的使用细节网上教程很多.
另外RecyclerView除了点击事件和分割线比ListView麻烦一点点之外, 其他样式, 数据处理都更灵活, 复杂的列表多使用RecyclerView

黄舟

建议使用7.0新出的DiffUtil工具类类

高洛峰

实际上只是刷新数据不会影响渲染本身的

优化以后的listview本来就是有回收机制的,无论数据是什么 渲染只在屏幕可见区域进行。等你滑到可见以后才会继续渲染。

天蓬老师

从后台获取的时候,传页面参数,只获取当前页,下拉加载就刷新第二页,以此类推

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号