有哪些方法可以使视图之间的垂直间距相同,如下图所示?
(我有什么)
(我需要什么)
我已经尝试过使用我为每个“图块”充气的 LinearLayout 的高度,但似乎无法弄清楚这一点。
有哪些方法可以使视图之间的垂直间距相同,如下图所示?
(我有什么)
(我需要什么)
我已经尝试过使用我为每个“图块”充气的 LinearLayout 的高度,但似乎无法弄清楚这一点。
我们不需要任何外部库,因为 Android 的原生 RecyclerView 只需更改 RecyclerView 的布局管理器即可实现 Pinterest 砌体布局
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
RecyclerAdapter adapter = new RecyclerAdapter(this);
mRecyclerView.setAdapter(adapter);
凉爽的。这很容易,但我的 LinearLayout 上的边距似乎不起作用。所以这里有一个快速修复。
SpacesItemDecoration decoration = new SpacesItemDecoration(16);
mRecyclerView.addItemDecoration(decoration);
SpacesItemDecoration 类:
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private final int mSpace;
public SpacesItemDecoration(int space) {
this.mSpace = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.left = mSpace;
outRect.right = mSpace;
outRect.bottom = mSpace;
// Add top margin only for the first item to avoid double space between items
if (parent.getChildAdapterPosition(view) == 0)
outRect.top = mSpace;
}
}