LinearLayoutManager 怎样设置行间距
时间: 2024-03-09 17:44:19 浏览: 28
在使用 LinearLayoutManager 进行列表布局时,可以通过设置 RecyclerView 的 ItemDecoration 来设置行间距。
具体实现方法如下:
1. 创建一个继承自 RecyclerView.ItemDecoration 的类,例如:
```java
public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpaceItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
// 不是第一个的格子都设一个左边和底部的间距
outRect.left = space;
outRect.bottom = space;
// 如果是第一列,就设一个顶部的间距
if (parent.getChildLayoutPosition(view) % 2 == 0) {
outRect.top = space;
}
}
}
```
2. 在使用 LinearLayoutManager 的时候,将上面创建的 ItemDecoration 对象设置给 RecyclerView,例如:
```java
int space = getResources().getDimensionPixelSize(R.dimen.space);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new SpaceItemDecoration(space));
```
其中,R.dimen.space 是在 res/values/dimens.xml 文件中定义的一个 dimen 值,用于设置间距大小。例如:
```xml
<resources>
<dimen name="space">8dp</dimen>
</resources>
```
这样就可以在列表项之间设置行间距了。如果需要设置列间距,可以在 getItemOffsets() 方法中根据需要进行设置。