RecyclerView 最初必须加载 n 个项目,当用户滚动到它的底部时,我想要一个按钮或底部的任何其他视图,以便用户可以单击它并触发添加 n 更多项目的方法。
我是android应用程序开发的新手,我真的需要帮助,谢谢。
RecyclerView 最初必须加载 n 个项目,当用户滚动到它的底部时,我想要一个按钮或底部的任何其他视图,以便用户可以单击它并触发添加 n 更多项目的方法。
我是android应用程序开发的新手,我真的需要帮助,谢谢。
Android recyclerview 用于在屏幕上显示大量项目,但具有改进的性能和其他好处。Android 中的 RecyclerView 使用一个适配器来表示我们想要显示为列表的信息。要显示的数据被发送到处理视图的适配器。
Considering you have a server that will send data when requested with a tweak to send data in set of row.
添加一个浮动按钮,当用户到达 recyclerview 结束时显示,此按钮从服务器请求更多数据并发送一个signal to adapter
包含数据的变量已更新。因此,这会将数据添加到您的视图中,您可以进一步滚动直到该数据结束。
您可以使用 RecyclerView 搜索无限滚动以获取与此相关的教程。
您要问的基本上是一个无休止的滚动回收器视图,底部有一个加载器视图,它接受点击以加载其他数据。
您必须viewType
在RecyclerView.Adapter
我鼓励您在提出新问题之前进行更多搜索,因为在 stackOverflow 上有无数关于此问题和类似问题的教程。这是关于如何实现多个视图类型的堆栈示例的链接。
我将分享一些关于实现您正在寻找的方法之一的观点。
首先在您的适配器中,您需要声明两个常量
private final int VIEW_ITEM = 0;
private final int VIEW_LOADER = 1;
和一个boolean showLoadMore
创建公共方法
public void showLoader(boolean status) {
this.showLoadMore = status;
}
这可用于在您的活动中显示/隐藏加载程序
您需要覆盖getItemCount()
方法以返回正确的行数,因为它会根据您的加载程序不断变化
@Override
public int getItemCount() {
if (yourList.isEmpty()) {
return 0;
} else {
if (showLoadMore)
return yourList.size() + 1;
else
return yourList.size();
}
}
覆盖getItemViewType(int position)
,因为你的装载机需要在底部,它应该
return (position == yourList.size() && showLoadMore) ? VIEW_LOAD : VIEW_ITEM;
接下来,如我上面分享的链接所示,您需要在方法中扩展您的布局,然后根据您的 viewTypesonCreateViewHolder
在方法中绑定您的布局。onBindViewHolder
您可以简单地使用 if else 条件,因为这种情况只有 2 种视图类型。
现在在您的活动中,您在 recyclerview 上 setAdapter 并获取了 n 个数据集 adapter.showLoader(true) 以显示加载器视图和notifyDataSetChanged()
. 您可以自定义加载器视图以显示进度条,或者根据您的喜好,单击获取下一组数据,如果新计数小于所需计数count <= n
,则设置适配器showLoader(false)
,adapter.notifyDataSetChanged()
这将在添加数据后隐藏您的加载器视图。
希望这个答案对您有所帮助,
同时,这是一个来自网络的教程,以另一种方式实现无限滚动回收器视图