RecyclerView 没有可以直接设置间距的属性,但是可以用 ItemDecoration 来实现。需要自定义 ItemDecoration,继承自 RecyclerView.ItemDecoration.
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpacesItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
// Add top margin only for the first item to avoid double space between items
if(parent.getChildPosition(view) == 0)
outRect.top = space;
}
}
然后,初始化 RecyclerView 之后,设置间距。代码如下:
1
2
3 recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
int itemSpacing = 8;
recyclerView.addItemDecoration(new SpacesItemDecoration(itemSpacing));