有没有一种方法可以在RecyclerView下添加按钮或其他任何东西

时间:2020-01-29 16:57:33

标签: java android android-recyclerview heterogeneous

RecyclerView最初必须加载n个项目,当用户滚动到它的底部时,我需要在底部放置一个按钮或任何其他View,以便用户可以单击它以及添加n个项目的方法被触发。

我是android应用程序开发的新手,我真的需要帮助,谢谢。

2 个答案:

答案 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数据供稿结束的代码。
  • 用于在单击按钮和信号适配器上请求更多数据以进行更新的功能。

您可以使用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