控制RecyclerView item的宽度

自从Android中引入RecyclerView之后,它就逐步的替换掉了ListView和GridView。本文很简单,行文目的是记录和备忘。如果能帮到你,那再好不过了。

关于控制RecyclerView item的宽度,说起来还不是那么清晰,上一张图,就明白了。

http://devnotes.tk/wordpress/wp-content/uploads/2018/04/e68ea7e588b6recyclerview-iteme79a84e5aebde5baa6.png

  • 上面的实际上是一个Grid布局
  • 前三行每个item均分RecyclerView的宽度
  • 最后一行的Others占大概三分之一,而Flipboard则占据了三分之二。

上面的图和描述就是我们今天想要实现的效果。

方法很简单,主要使用了GridLayoutManager的setSpanSizeLookup方法

1
2
3
4
5
6
7
8
9
10
11
mLayoutManager = new GridLayoutManager(this, 3);
mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
 @Override
 public int getSpanSize(int position) {
 if (position == mAdapter.getItemCount() - 1) {
 return 2;
 } else {
 return 1;
 }
 }
});
  • GridLayoutManager构造方法中传入了一个spanCount,这里值为3
  • getSpanSize方法中,最后一个item占据2个span,其他占据一个span

完整示例源码

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址