Utilizzo RecyclerView con StaggeredGridLayoutManager per creare un elenco a due colonne. Ma come impostare un margine destro tra la colonna di sinistra e la colonna di destra. Ho usato questo codice per creare il margine destro dall'alto, ma come risolvere il doppio spazio tra le colonne.Come evitare il doppio spazio tra gli elementi quando si utilizza RecyclerView con 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;
}
E in attività:
recyclerView.addItemDecoration(new SpacesItemDecoration(20));
Ho cercato di usare view.getX()
, si ritorna sempre 0.
Qualcuno mi può aiutare? Grazie molto!