| package com.doumee.lib_coremodel.view.recyclerview; | 
|   | 
| /** | 
|  * Created by MSI on 2018/5/31. | 
|  */ | 
|   | 
| import android.graphics.Rect; | 
| import android.view.View; | 
|   | 
| import androidx.recyclerview.widget.RecyclerView; | 
|   | 
| /** | 
|  * 设置item间距 | 
|  */ | 
| public class SpacesDecorationWithCount extends RecyclerView.ItemDecoration { | 
|     private int space;//间隔 | 
|     private int count;//数目 | 
|     private int topSpace; | 
|     private int bottomSpace; | 
|     private int type=0; | 
|   | 
|     public SpacesDecorationWithCount(int space, int count) { | 
|         this.space = space; | 
|         this.count=count; | 
|     } | 
|   | 
|     public SpacesDecorationWithCount(int space, int count, int type) { | 
|         this.space = space; | 
|         this.count=count; | 
|         this.type=type; | 
|     } | 
|   | 
|     public SpacesDecorationWithCount(int space, int count, int topSpace, int bottomSpace) { | 
|         this.space = space; | 
|         this.count = count; | 
|         this.topSpace = topSpace; | 
|         this.bottomSpace = bottomSpace; | 
|     } | 
|   | 
|     @Override | 
|     public void getItemOffsets(Rect outRect, View view, | 
|                                RecyclerView parent, RecyclerView.State state) { | 
|         outRect.bottom=bottomSpace; | 
|         outRect.top=topSpace; | 
|   | 
|         // Add top margin only for the first item to avoid double space between items | 
|         /*if (parent.getChildPosition(view) == 0) | 
|             outRect.top = space;*/ | 
|         float f = 1.0f/(count-1); | 
|         int space50 = (int) (space*f); | 
|         int space150 = space - space50; | 
|         int sp = (int) (space * 0.5f); | 
|         int sp1 = space150 - space50; | 
|         if(type==0){ | 
|             int po=parent.getChildAdapterPosition(view)%count; | 
|             if (po == 0){ | 
|                 outRect.right = space150; | 
|             }else if(po==count-1){ | 
|                 outRect.left = space150; | 
|             }else { | 
|                 outRect.left = space50; | 
|                 outRect.right = sp1; | 
|             } | 
|         }else { | 
|             outRect.left=sp; | 
|             outRect.right=sp; | 
|         } | 
|     } | 
| } |