美文网首页
关于 GridLayoutManager 的 SpanSizeL

关于 GridLayoutManager 的 SpanSizeL

作者: WotYang | 来源:发表于2019-05-24 00:03 被阅读0次

效果图


代码

 GridLayoutManager layoutManager = new ScrollGridLayoutManager(getActivity(),6, GridLayoutManager.VERTICAL, false);
 GridLayoutManager.SpanSizeLookup spanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
      @Override
      public int getSpanSize(int position) {
          //5个时为前两个为2列、后三个为3列
          if (position < 2) {
              return 3;
          } else {
              return 2;
          }
      }
};

参数说明

参数 备注
spanCount 每行排列 item 个数,在GridLayoutManager对象创建时需要传入
spanSize 当前位置的 item 跨度大小,在 setSpanSizeLookup() 方法返回

解答一波

  1. 为什么前两个为2列、后三个为3列时,spanCount 等于6 ?
    因为 spanCount 等于 2于3的最小公倍数
    例如3、4、5
    3=3
    4=2x2
    5=5
    然后将各式子的相同部分合并成一个质数,再乘以剩下的质数。
    上面三式没有相同部分,只有3,2x2,5是不相同部分。
    所以 spanCount 的值是 3x2x2x5=60
  1. 为什么前两个为2列、后三个为3列时,spanCount 等于6,position < 2返回 3,否则返回 2。
    因为 每行的item数 = spanCount / spanSize

相关文章

网友评论

      本文标题:关于 GridLayoutManager 的 SpanSizeL

      本文链接:https://www.haomeiwen.com/subject/npgizqtx.html