RecyclerView 上下左右四种间距的设置方法

RecyclerView控件大家肯定不陌生,已经应用有一段时间了,最近在项目中写一个GridLayout样式的RecyclerView时需要设置,item之间左右的间距,下面是我总结的一个设置间距的方法分享给大家。

下面是没间距的情况

img

想要设置item之间的间距需要自己创建一个继承自RecyclerView.ItemDecoration的类

public class RecyclerViewSpacesItemDecoration extends RecyclerView.ItemDecoration {

   private HashMap<String, Integer> mSpaceValueMap;

   public static final String TOP_DECORATION = "top_decoration";
   public static final String BOTTOM_DECORATION = "bottom_decoration";
   public static final String LEFT_DECORATION = "left_decoration";
   public static final String RIGHT_DECORATION = "right_decoration";
​
   public RecyclerViewSpacesItemDecoration(HashMap<String, Integer> mSpaceValueMap) {
       this.mSpaceValueMap = mSpaceValueMap;
   }
​
   @Override
   public void getItemOffsets(Rect outRect, View view,
                               RecyclerView parent, RecyclerView.State state) {
       if (mSpaceValueMap.get(TOP_DECORATION) != null)
           outRect.top = mSpaceValueMap.get(TOP_DECORATION);
       if (mSpaceValueMap.get(LEFT_DECORATION) != null)

           outRect.left = mSpaceValueMap.get(LEFT_DECORATION);
       if (mSpaceValueMap.get(RIGHT_DECORATION) != null)
           outRect.right = mSpaceValueMap.get(RIGHT_DECORATION);
       if (mSpaceValueMap.get(BOTTOM_DECORATION) != null)

           outRect.bottom = mSpaceValueMap.get(BOTTOM_DECORATION);

   }

}
下面是 设置RecyclerView间距的关键方法
HashMap<String, Integer> stringIntegerHashMap = new HashMap<>();
stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION,50);//top间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION,100);//底部间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION,50);//左间距

stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION,100);//右间距

mRecyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));

可以根据自己的实际情况去设置想要的间距,也可以去单独设置
下面是设置间距后的效果图

捕获.PNG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章分三个部分,简单跟大家讲一下 RecyclerView 的常用方法与奇葩用法;工作原理与ListView比...
    LucasAdam阅读 9,977评论 0 27
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,034评论 25 709
  • Tangram是阿里出品、用于快速实现组合布局的框架模型,在手机天猫Android&iOS版 内广泛使用 该框架提...
    wintersweett阅读 8,727评论 0 1
  • 韩寒,这个名字,我第一次认识是在一本《韩寒作品集》看到这名字的,那是09年春节的时候,在家呆着无聊就突然跑到图书馆...
    吕桉木阅读 4,233评论 0 2
  • 想你,你会在哪……
    零点说晚安阅读 1,112评论 0 1

友情链接更多精彩内容