ich Teiler wie das unten stehende Bild erhalten möchten:RecyclerView ItemDecoration Teiler schneidet mein Kind sieht
ich alle Spalten die gleiche Breite wollen, aber mit unterschiedlichem Abstand. Gerade jetzt meine erste Spalte und die letzte Spalte ist wie folgt geschnitten worden:
Hier ist mein ItemDecoration
:
public class MoreIndexItemDividerDecoration extends RecyclerView.ItemDecoration {
private GridLayoutManager mGridLayoutManager;
private GridLayoutManager.SpanSizeLookup mSpanSizeLookup;
private int mSpanCount;
public MoreIndexItemDividerDecoration(GridLayoutManager manager, int spanCount) {
mGridLayoutManager = manager;
mSpanSizeLookup = mGridLayoutManager.getSpanSizeLookup();
mSpanCount = spanCount;
}
@Override
public void getItemOffsets(Rect outRect, View child, RecyclerView parent, RecyclerView.State state) {
int pos = parent.getChildLayoutPosition(child);
int left = 0;
int top = 0;
int right = 0;
int bottom = 0;
if (mGridLayoutManager.getItemViewType(child) == 1) {
if (mSpanSizeLookup.getSpanIndex(pos, mSpanCount) == 0) {
left = 50;
} else {
left = 5;
}
if (mSpanSizeLookup.getSpanIndex(pos, mSpanCount) == mSpanCount - 1) {
right = 50;
} else {
right = 5;
}
top = 5;
bottom = 5;
} else {
if (mSpanSizeLookup.getSpanGroupIndex(pos, 4) != 0) {
top = 45;
}
bottom = 45;
}
outRect.set(left, top, right, bottom);
HtscLog.e("child pos: " + pos + " span size: " + mSpanSizeLookup.getSpanSize(pos) + " group index: " + mSpanSizeLookup.getSpanGroupIndex(pos, 4) + " index: " + mSpanSizeLookup.getSpanIndex(pos, 4) + " view type: " + mGridLayoutManager.getItemViewType(child));
}
}
Wie kann ich dieses Problem beheben? Vielen Dank!