【问题标题】:How do you center a gridlayout horizontally using recyclerview?如何使用 recyclerview 将网格布局水平居中?
【发布时间】:2019-05-09 04:58:11
【问题描述】:

我正在尝试使用回收站视图使网格布局居中。

下面列出的代码是我尝试过的,但它搞砸了,但并没有真正理解它是如何工作的。

图标显示类似于下面的内容。

  1. 我..我
  2. i..i..i
  3. i..i..i

我想要

  1. ..i.i
  2. i..i..i
  3. i..i..i
 GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 6, RecyclerView.VERTICAL, true);
        final int totalSize = Cards.size();
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int span;
                span = totalSize % 3;
                if (totalSize < 3) {
                    return 6;
                } else if (span == 0 || (position <= ((totalSize - 1) - span))) {
                    return 2;
                } else if (span == 1) {
                    return 6;
                } else {
                    return 3;
                }
            }
        });
        recyclerView.setLayoutManager(gridLayoutManager);

【问题讨论】:

    标签: java android android-recyclerview grid-layout


    【解决方案1】:

    您在 getSpanSize 中返回的整数指定某个单元格应占用的列宽数。从您的代码来看,您似乎需要大部分元素占据布局宽度的三分之一

         (position <= ((totalSize - 1) - span))
    

    该代码在大多数情况下返回 true,最后几个单元格除外。我认为您编写的代码有缺陷,我无法理解您到底需要什么。如果您有一张可以分享的图片,它将极大地帮助您获得解决方案的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2021-04-30
      • 2016-07-16
      相关资源
      最近更新 更多