首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在RecyclerView网格中放置一个不确定的进度条作为页脚

在RecyclerView网格中放置一个不确定的进度条作为页脚
EN

Stack Overflow用户
提问于 2014-11-21 00:19:57
回答 3查看 44.1K关注 0票数 57

如何在网格RecycleView中获取“向上滚动加载更多”的不确定循环指示器?

这里描述了这种模式:“两阶段加载”和“示例2:向上滚动加载更多”示例视频中的http://www.google.com/design/spec/components/progress-activity.html#progress-activity-behavior

我正在尝试使用新的RecyclerView来实现这一点,但我找不到一种“不太像黑客的”方法,首先是因为没有一种方法可以在网格中添加覆盖整行的页脚。有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-20 22:04:17

这样做很简单。

解决方案是对GridLayoutManager使用与LinearLayoutManager相同的方法,然后在LayoutManager上使用方法setSpanSizeLookup,如下所示:

代码语言:javascript
复制
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;
            }
        }
    });

这将自动使项目覆盖网格的一整行(如果该行不是完全空的,则该项目将转到下一行)。

票数 70
EN

Stack Overflow用户

发布于 2015-11-09 12:39:05

https://github.com/ramirodo/endless-recycler-view-adapterhttps://bintray.com/ramiro/android/endless-recycler-view-adapter中查看我的解决方案。这里有一个示例,以及在项目中设置库的步骤。

您只需要通过实现所需的方法来扩展您的回收器视图适配器。您还可以设置进度页脚的布局。

票数 1
EN

Stack Overflow用户

发布于 2017-09-18 03:23:53

您可以通过在适配器中插入代码来简化Bronx的回答。

代码语言:javascript
复制
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;
            }
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27044449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档