Я использую RecyclerView с StaggeredGridLayoutManager, чтобы создать список из двух столбцов. Но как установить правое поле между левым столбцом и правым столбцом. Я использовал этот код, чтобы сделать правильный край сверху, но как решить двойное пространство между столбцами.
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 or second item to avoid double space between items
// Add top margin only for the first or second item to avoid double space between items
if((parent.getChildCount() > 0 && parent.getChildPosition(view) == 0)
|| (parent.getChildCount() > 1 && parent.getChildPosition(view) == 1))
outRect.top = space;
}
И в действии:
recyclerView.addItemDecoration(new SpacesItemDecoration(20));
Я пытался использовать view.getX()
, он всегда возвращает 0.
Может ли кто-нибудь мне помочь? Большое спасибо!