Android RecyclerView 无限滚动 : how to add more items to dataset

标签 android infinite-scroll android-recyclerview

我已经实现了 RecyclerView,甚至添加了一个 onscrolllistener 来支持无限滚动,但现在我遇到了一个简单的问题:如何将新加载的数据添加到现有数据集?

我目前的方法:我创建一个新数组,其长度为现有数据集的长度 + 新加载数据的长度。我 System.arraycopy 我现有的数据集,并使用 for 循环添加新内容。

这行得通,但列表总是重置(滚动回顶部),我认为我添加额外内容的方式过于复杂/错误,尽管我看过的教程似乎忽略了这个“细节”。

更新:我目前在加载数据后在 UI-Thead 上调用“scrollToPosition”,但我怀疑这是正确的做法还是我错了?

最佳答案

您不应该向数据集添加内容,您迟早会耗尽内存。您可以做的是在适配器内的 getItemCount 中返回一个大数字(我使用了 Short.MAX_VALUE)项目,并在请求位置 View 的方法中返回您应该做的 位置 % list.size();

这不是一个真正无限的 RecyclerView 这种方式,但已经足够好了。我明天会粘贴一些代码,我现在这里没有:/

关于Android RecyclerView 无限滚动 : how to add more items to dataset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219776/

相关文章:

jquery - Wordpress 无限滚动选择器

android - 键盘关闭时 Recyclerview 崩溃

android - 使用 MVVM 模型在 Xamarin Android 中弹出 View

java - 与 Instagram 相比,CameraPreview 显示的是放大后的图像

android - setTypeface(字体)不起作用

javascript - Meteor 中无限滚动实现的订阅行为

css - 实现固定页眉和滚动,页脚和移动问题

android - 如何使用 DiffUtils 更新 RecyclerView 中的列表?

android - 在 RecyclerView 中未正确解析暗模式颜色

android - 如何计算屏幕朝向