RecyclerView双向无限滚动,可根据需要加载数据

Dmi*_*nov 7 android android-recyclerview

有很多关于如何使用EndlessScroll和加载数据的信息RecyclerView.但是,它仅支持在一个方向上滚动和加载数据.在我们的项目中,我们需要能够加载任意数据部分并允许用户在任一方向(向上和向下)滚动并在两个方向上按需加载数据.换句话说,每次用户滚动结束 - 在历史结束时加载数据.每次用户滚动到开头 - 在历史开头加载数据

这种实现的一个例子是Skype/Telegram聊天历史.当您打开聊天时,您将进入未读消息列表的开头,只要您开始滚动聊天记录,他们就会按需加载数据.

问题RecyclerView是它使用偏移位置来处理项目和视图; 难以将加载的数据提供给适配器并通知位置和计数的变化.当我们滚动到历史的开头时,我们无法在-1到-n的位置插入数据.有人找到了解决方案吗?动态更新物品的位置?

小智 0

您可以在双向滚动时检查第一个和最后一个可见项目。在此基础上,您将能够对数据进行分页。