Unten ist, wie ich den Abstand für RecyclerView-Elemente mache. Es wurde entwickelt, um mit Grids und Listen zu arbeiten. Der Abstand funktioniert.RecyclerView ItemDecoration: Abstand und Dividierer
Was ich nicht herausfinden kann, ist, wie man eine Trennlinie auch einfügt. Jede Hilfe wird sehr geschätzt.
SIDE HINWEIS:, wenn Sie einen besseren Weg, den Abstand zu implementieren als das, was ich gerade tun, würde ich auch sehr dankbar :)
public class ItemOffsetDecoration extends RecyclerView.ItemDecoration {
private int numOfColumns;
private int listSize;
private int offsetInDp;
private boolean isGridView;
private boolean canScrollHorizontally;
private boolean isBottomRow = false;
public ItemOffsetDecoration(RecyclerView.LayoutManager manager, int listSize, int offsetInDp) {
this(manager, 1, listSize, offsetInDp);
}
public ItemOffsetDecoration(RecyclerView.LayoutManager manager, int numOfColumns, int listSize, int offsetInDp) {
this.numOfColumns = numOfColumns;
this.listSize = listSize;
this.offsetInDp = PixelConversionUtils.dpToPx(offsetInDp);
this.isGridView = manager instanceof GridLayoutManager;
this.canScrollHorizontally = manager.canScrollHorizontally();
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
// only do left/right spacing if grid or horizontal list
if (isGridView || canScrollHorizontally) {
outRect.left = offsetInDp;
outRect.right = offsetInDp;
}
// only do top/bottom spacing if grid or vertical list
if (isGridView || !canScrollHorizontally) {
int pos = parent.getChildAdapterPosition(view);
boolean isNotTopRow = pos >= numOfColumns;
// Don't add top spacing to top row
if (isNotTopRow) {
outRect.top = offsetInDp;
}
int columnIndex = ((GridLayoutManager.LayoutParams) view.getLayoutParams()).getSpanIndex();
if (pos >= (listSize - numOfColumns) && columnIndex == 0) {
isBottomRow = true;
}
// Don't add bottom spacing to bottom row
if (!isBottomRow && pos < (listSize - numOfColumns)) {
outRect.bottom = offsetInDp;
}
}
}
}
hier eine schnelle visuelle ist von dem, was ich bin auf der Suche zu tun:
hier ist, was ich habe:
hier ist, was ich will :
Können Sie den Screenshot einfügen, was Sie erwarten?Ist es nicht genug, nur ein Paar zu haben: RecyclerView & CardView? – Silwester
erledigt. Werfen Sie einen Blick auf – Psest328
override 'onDraw' /' onDrawOver' dann – pskink