美文网首页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