如何在网格RecycleView中获取“向上滚动加载更多”的不确定循环指示器?
这里描述了这种模式:“两阶段加载”和“示例2:向上滚动加载更多”示例视频中的http://www.google.com/design/spec/components/progress-activity.html#progress-activity-behavior。
我正在尝试使用新的RecyclerView来实现这一点,但我找不到一种“不太像黑客的”方法,首先是因为没有一种方法可以在网格中添加覆盖整行的页脚。有什么建议吗?
发布于 2015-03-20 22:04:17
这样做很简单。
解决方案是对GridLayoutManager
使用与LinearLayoutManager
相同的方法,然后在LayoutManager
上使用方法setSpanSizeLookup
,如下所示:
mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch(myAdapter.getItemViewType(position)){
case MyAdapter.VIEW_TYPES.Product:
return 1;
case MyAdapter.VIEW_TYPES.Progress:
return 2; //number of columns of the grid
default:
return -1;
}
}
});
这将自动使项目覆盖网格的一整行(如果该行不是完全空的,则该项目将转到下一行)。
发布于 2015-11-09 12:39:05
在https://github.com/ramirodo/endless-recycler-view-adapter或https://bintray.com/ramiro/android/endless-recycler-view-adapter中查看我的解决方案。这里有一个示例,以及在项目中设置库的步骤。
您只需要通过实现所需的方法来扩展您的回收器视图适配器。您还可以设置进度页脚的布局。
发布于 2017-09-18 03:23:53
您可以通过在适配器中插入代码来简化Bronx的回答。
public class ArticleGridAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private final int VIEW_ITEM = 0;
private final int VIEW_LOADING = 1;
private Context mContext;
private List<Article> mArticles = new ArrayList<>();
private RecyclerView mRecyclerView;
private GridLayoutManager mManager;
public ArticleGridAdapter(Context context, List<Article> articles, RecyclerView recyclerView) {
this.mContext = context;
this.mArticles = articles;
this.mRecyclerView = recyclerView;
this.mManager = (GridLayoutManager) recyclerView.getLayoutManager();
mManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return getItemViewType(position) == VIEW_LOADING ? mManager.getSpanCount() : 1;
}
});
}
}
https://stackoverflow.com/questions/27044449
复制相似问题