美文网首页
Android RecyclerView 网格布局 实现分割线宽

Android RecyclerView 网格布局 实现分割线宽

作者: 洪荒之气 | 来源:发表于2022-07-09 14:39 被阅读0次

    转载自: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>

    相关文章

      网友评论

          本文标题:Android RecyclerView 网格布局 实现分割线宽

          本文链接:https://www.haomeiwen.com/subject/ectibrtx.html