回收器视图网格布局管理器 - 每行的权重



我正在尝试使用GridLayoutManager实现RecyclerView,以实现以下行为:

  -------------
  |           |
  |           |
  -------------
  |       |   |
  |       |   |
  -------------
  |   |       |
  |   |       |
  -------------
  |       |   |
  |       |   |
  -------------
  |   |       |
  |   |       |
  -------------

这个想法是,第一项始终占据整行,然后下一行分为 3 个空间,有 2 个项目,一个项目的权重为 2,另一个项目的权重为 1(类似于 LinearLayout)。

我怎样才能完成这样的行为?

我想通了,正如塞尔文所建议的那样,我查找了自定义布局管理器,发现覆盖方法getSpanSize()对我有用。

layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            Category item = mCategories.get(position);
            return item.weight;
        }
    });

最新更新