美文网首页listviewAndroid开发经验程序员
RecyclerView使用GridLayoutManager间

RecyclerView使用GridLayoutManager间

作者: android难民 | 来源:发表于2016-05-24 16:29 被阅读40952次

使用RecyclerView设置间距,需要重写RecyclerView.ItemDecoration这个类。有如下的效果图需要实现,间距只有中间的格子和底部的格式之间有。

Paste_Image.png

实现方法很简单,因为这个效果是每一行有3个格子,只要每行的第一个格式左边间距为0即可以。其他都设置左边距和底部距离。

代码如下:

 public class SpaceItemDecoration extends RecyclerView.ItemDecoration {

    private int space;

    public SpaceItemDecoration(int space) {
        this.space = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        //不是第一个的格子都设一个左边和底部的间距
        outRect.left = space;
        outRect.bottom = space;
        //由于每行都只有3个,所以第一个都是3的倍数,把左边距设为0
        if (parent.getChildLayoutPosition(view) %3==0) {
            outRect.left = 0;
        }
    }

}

相关文章

网友评论

  • 吧主:这篇文章,我给你在公众号原创发布可以吗?公众号:杨守乐
  • ddcb8f910f13:我只想问 在gridlayout下 怎样居中 整体往左边偏移了呀
  • 8e47b82fb2be:你这样实现的话每行左边第一个格子都会比其他的小
    8e47b82fb2be:@Zowen @Zowen 简单点说是因为使用GridLayoutManager的话,itemwidth=(recyclerview.width
    -recyclerview.paddingleft-recyclerview.paddingright)/spancount-decorations.left-decorations.right
    1bceecfd9562:@Zowen http://blog.csdn.net/yanggz888/article/details/54379208 看这篇文章
    Zowen:请问能讲下为什么吗,我这两天一直想弄懂这个。
  • 754b85023f5b:为什么左边第一个的底边距比后面加个小啊
    5cd053571fc6:@754b85023f5b 我也碰到这个问题了
  • 1c5133cee27b:您好,最左边和最右边的距离能设置吗?
    android难民:@阿尔法猫 能的

本文标题:RecyclerView使用GridLayoutManager间

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