转载自:https://www.it610.com/article/1289321582728126464.htm
工具类:
public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
private int spanCount;
private int spacing;
private boolean includeEdge;
public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {
this.spanCount = spanCount;
this.spacing = spacing;
this.includeEdge = includeEdge;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
int position = parent.getChildAdapterPosition(view);
int column = position % spanCount;
if (includeEdge) {
outRect.left = spacing - column * spacing / spanCount;
outRect.right = (column + 1) * spacing / spanCount;
if (position < spanCount) {
outRect.top = spacing;
}
outRect.bottom = spacing;
} else {
outRect.left = column * spacing / spanCount;
outRect.right = spacing - (column + 1) * spacing / spanCount;
// if (position >= spanCount) {
// outRect.top = spacing;
// }
if (position < spanCount) {
outRect.top = spacing;
}
outRect.bottom = spacing;
}
}
}
使用方式:
recyclerview.addItemDecoration(new GridSpacingItemDecoration(2, 30, true));
recyclerview.setHasFixedSize(true);
ITEM布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/dp_360"
android:scaleType="centerCrop"
android:src="@mipmap/banner2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textStyle="bold"
android:text="林家铺子新国货你柠檬321g*5颗装"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/orgPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:drawableLeft="@mipmap/org_price"
android:drawablePadding="@dimen/dp_3"
android:textSize="@dimen/sp_12"
android:textColor="@color/black"
android:layout_marginRight="@dimen/dp_36"
android:text="288/件"/>
<TextView
android:id="@+id/vipPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/vip_price"
android:drawablePadding="@dimen/dp_3"
android:gravity="center"
android:textSize="@dimen/sp_12"
android:textColor="@color/black"
android:text="158/件"/>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/sellNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_12"
android:textColor="@color/grgray"
android:gravity="center"
android:text="月销88件"/>
</LinearLayout>
</LinearLayout>
网友评论