如何在android中删除Recyclerview项目之间的分隔符

And*_*Sco 9 android divider android-recyclerview

我想删除RecyclerView项目之间的分隔符(空格)

因此,尝试设置background项目视图和RecyclerView到White,但它不工作怎么解决?

物品查看XML:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@android:color/white"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    <LinearLayout
        android:background="@android:color/white"
        android:paddingLeft="@dimen/footer_item_padding"
        android:paddingRight="@dimen/footer_item_padding"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/img_avatar_category_item_adapter"
            android:contentDescription="@string/app_name"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:layout_width="@dimen/image_width_category_adapter"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

活动XML:

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_categories_main_activity"
            android:background="@android:color/white"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)

Activity 课程:

    rv_categories.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
    rv_categories.setItemAnimator(new DefaultItemAnimator());
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

nim*_*ati 16

首先定义您的RecyclerView:

RecyclerView recycle =(RecyclerView)findViewById(R.id.recyclerView);

并在您的活动中使用此方法:

recycle.addItemDecoration(new DividerItemDecoration(context, 0));
Run Code Online (Sandbox Code Playgroud)

  • 这将水平放置分隔线,但不会完全移除分隔线 (2认同)

Sev*_*yuk 8

您可以使用DividerItemDecoration类并覆盖其onDraw方法,不执行任何操作:

mRecyclerView.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL) {
        @Override
        public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
            // Do not draw the divider
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 如果我们要绘制某些行而不是其他行怎么办? (2认同)

ein*_*ame 6

由于某种原因,其他答案对我不起作用,但这个解决方法确实有效:

for (int i = 0; i < recyclerView.getItemDecorationCount(); i++) {
    if (recyclerView.getItemDecorationAt(i) instanceof DividerItemDecoration)
        recyclerView.removeItemDecorationAt(i);
}
Run Code Online (Sandbox Code Playgroud)