RecyclerView没有可以直接设置间距的属性,但是可以用ItemDecoration来实现。需要自定义ItemDecoration,继承自RecyclerView.ItemDecoration.
代码如下:
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之后,设置间距。代码如下:
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
int itemSpacing = 8;
recyclerView.addItemDecoration(new SpacesItemDecoration(itemSpacing));
评论