在Recyclerview(GridLayoutManager)末尾显示更多类别按钮,如grofers app

时间:2016-11-17 10:04:58

标签: android android-recyclerview

Grofers app image

enter image description here

我想在recyclerview中的6个项目之后添加一个显示更多类别按钮,onclick显示其余项目并在底部显示隐藏按钮

2 个答案:

答案 0 :(得分:5)

我为您的情况制作了示例代码:RecyclerView-Grid-with-Load-More

初始屏幕

Intial Data

更新了屏幕

Updated Data

答案 1 :(得分:0)

最初将前6个数据添加到您的适配器,您需要为Recyclerview创建2个Viewhoulder类

例如:

//适用于所有项目

class ViewHolder0 extends RecyclerView.ViewHolder {
        ...
    }

//显示更多或结束

class ViewHolder2 extends RecyclerView.ViewHolder {
    ...
}

在getItemCount方法中返回总数据大小+ 1

  @Override
        public int getItemCount() {
            return data.size() + 1;
        }

并在适配器中返回1表示最后一项的项目,否则为0

 @Override
        public int getItemViewType(int position) {

            return data.size() == position +1 ? 1 : 0;      
  }

从onCreateViewHolder,您需要检查viewtype并返回相关的Viewhoulder

@Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         switch (viewType) {
             case 0: return new ViewHolder0(...);//Normal item
             case 1: return new ViewHolder2(...); // End item
             ...
         }
    }

在ViewHolder2(加载更多按钮容器)类中,为Load-more按钮设置onclicklister,然后从中添加接下来的6个数据到适配器。之后调用notifyDataSetChanged()