美文网首页
RecyclerView 上下左右四种间距的设置方法

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

作者: Cloud_9527 | 来源:发表于2017-03-15 23:50 被阅读0次

    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

    相关文章

      网友评论

          本文标题:RecyclerView 上下左右四种间距的设置方法

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