RecyclerView最初必须加载n个项目,当用户滚动到它的底部时,我需要在底部放置一个按钮或任何其他View,以便用户可以单击它以及添加n个项目的方法被触发。
我是android应用程序开发的新手,我真的需要帮助,谢谢。
答案 0 :(得分:0)
Android recyclerview用于在上显示大量项目 屏幕,但具有改进的性能和其他优势。回收站视图 在Android中使用适配器来表示我们想要的信息 显示为列表。要显示的数据被发送到适配器,该适配器处理该视图。
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搜索无限滚动以获取教程 与此有关。
答案 1 :(得分:0)
您要问的基本上是一个无休止的滚动recyclerview,底部具有loaderview,该加载器视图接受单击以加载其他数据。
您必须在viewType
RecyclerView.Adapter
我鼓励您在提出新问题之前进行更多搜索,因为关于stackOverflow的此问题和类似问题有无数的教程。这是堆栈上an example的链接,介绍了如何实现多种viewType。
我将就实现您所寻找的方法之一分享一些观点。
首先在适配器中需要声明两个常量
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;
接下来,如我上面共享的链接所示,您需要在onCreateViewHolder
方法中增加布局,然后根据您的viewType在onBindViewHolder
方法中绑定您的布局。您可以简单地使用if条件,因为这种情况下只有2种视图类型。
现在,在recyclerview上设置setAdapter并获取了n个数据集adapter.showLoader(true)以显示加载程序视图和notifyDataSetChanged()
之后,现在就开始活动。您可以自定义loaderview以显示进度条,也可以根据需要根据需要自定义,以获取下一组数据,如果新计数少于要求的计数count <= n
,则设置适配器的showLoader(false)
和{{1} },这会在添加数据后隐藏您的加载器视图。
希望此答案在某种程度上对您有所帮助,
与此同时,a tutorial来自网络,它以另一种方式实现了无限滚动的recyclerview