Ich verwende RecyclerView mit StaggeredGridLayoutManager, um eine zweispaltige Liste zu erstellen. Aber wie man einen rechten Rand zwischen der linken Spalte und der rechten Spalte einstellt. Ich habe diesen Code verwendet, um den rechten Rand von oben zu machen, aber wie man den doppelten Abstand zwischen den Spalten löst.Wie vermeidet man doppelten Abstand zwischen den Elementen, wenn RecyclerView mit StaggeredGridLayoutManager verwendet wird?
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;
}
Und Aktivität:
recyclerView.addItemDecoration(new SpacesItemDecoration(20));
Ich habe versucht view.getX()
zu verwenden, bringen Sie es immer 0.
mir jemand helfen? Danke vielmals!