Android RecyclerView에서 구분선을 어떻게 추가 할 수 있습니까?


221

내가 사용하는 안드로이드 응용 프로그램을 개발 중 RecyclerView입니다. 내가 추가 할 필요가 분배기RecyclerView. 나는 추가하려고했다-

recyclerView.addItemDecoration(new
     DividerItemDecoration(getActivity(),
       DividerItemDecoration.VERTICAL_LIST));

아래는 내 XML 코드입니다-

   <android.support.v7.widget.RecyclerView
    android:id="@+id/drawerList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    />

3
나는 이것이 당신을 도울 것입니다 stackoverflow.com/q/24618829/942224
Sanket Kachhela

마지막 줄없이 구분선을 표시하려면 이것을
Kishan Solanki

귀하의 코드가 정확하다고 생각합니다. 문제가 없습니다.
Rohit Rawat

답변:


282

2016 년 10 월 업데이트에서 지원 라이브러리 v25.0.0에는 기본 가로 및 세로 구분선이 기본 구현되어 있습니다!

https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration.html

 recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));

3
정보 주셔서 감사합니다! 마지막 항목 이후에 디바이더를 제거하는 방법이 있습니까? List가 구현 된 CardView가 있고 맨 아래에 cardview의 구분선 + 그림자가 좋지 않습니다!
맥시

4
나는 같은 문제가 있었고 DividerItemDecoration을 확장하고 getItemOffsets를 재정의 한 다음 첫 번째 항목이 아닌 경우에만 super를 호출하여 문제를 해결했습니다. if(parent.getChildAdapterPosition(view) == state.getItemCount() - 1)그런 다음 반환하십시오. 그렇지 않으면 수퍼 클래스를 호출하십시오 getItemOffsets().
Robin

13
대신 RecyclerView가 수직이기 때문에 mLayoutManager.getOrientation()사용 DividerItemDecoration.VERTICAL하고 작동했습니다.
Aaron Lelevier

2
이 내장 방식을 사용하여 분배기의 색상을 변경하는 방법이 있습니까?
j2emanue 2018 년

1
@android:attr/listDivider앱 테마의 @ V.Kalyuzhnyu 는 색상 리소스 인 경우 구분선을 표시하지 않으므로 고정 높이의 색상으로 드로어 블을 그릴 수있는 모양을 만들어야했습니다.
A. Ferrand

226

올바른 방법은 다음과 같이 정의 ItemDecoration하는 것 RecyclerView입니다.

SimpleDividerItemDecoration.java

public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration {
    private Drawable mDivider;

    public SimpleDividerItemDecoration(Context context) {
        mDivider = context.getResources().getDrawable(R.drawable.line_divider);
    }

    @Override
    public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
        int left = parent.getPaddingLeft();
        int right = parent.getWidth() - parent.getPaddingRight();

        int childCount = parent.getChildCount();
        for (int i = 0; i < childCount; i++) {
            View child = parent.getChildAt(i);

            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();

            int top = child.getBottom() + params.bottomMargin;
            int bottom = top + mDivider.getIntrinsicHeight();

            mDivider.setBounds(left, top, right, bottom);
            mDivider.draw(c);
        }
    }
}

line_divider.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <size
        android:width="1dp"
        android:height="1dp" />

    <solid android:color="@color/dark_gray" />

</shape>

마지막으로 이렇게 설정하십시오

recyclerView.addItemDecoration(new SimpleDividerItemDecoration(this));

편집하다

@ Alan Solitar이 지적한대로

context.getResources().getDrawable(R.drawable.line_divider); 

사용할 수있는 대신 감가 상각됩니다.

ContextCompat.getDrawable(context,R.drawable.line_divider);

3
context.getResources (). getDrawable (R.drawable.line_divider)는 더 이상 사용되지 않습니다.
Alan S.

2
문제 없어요. 이것은 좋은 대답이며 완벽하게 작동했습니다. 감사합니다.
Alan S.

3
이것은 내 편에서 완벽하게 작동합니다. 그러나 왜이 구분 기호에 대한 간단한 <보기>를 각 셀의 레이아웃에 추가하지 않는지 궁금합니다. 훨씬 적은 코드입니다. 이 솔루션의 성능이 좋지 않습니까? tx
그렉

4
이 구현에서 문제는 스 와이프하거나 항목을 옮기려고 할 때 발생합니다.
TerNovi

1
@ NJ 감사합니다 친구 당신은 내 시간을 절약했습니다.
Suhas Bachewar

40

가로 및 세로 구분선이 모두 필요한 경우 :

  1. 가로 및 세로 구분선 드로어 블을 정의합니다.

    horizontal_divider.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
      <size android:height="1dip" />
      <solid android:color="#22000000" />
    </shape>

    vertical_divider.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <size android:width="1dip" />
        <solid android:color="#22000000" />
    </shape>
  2. 이 코드 세그먼트를 아래에 추가하십시오.

    DividerItemDecoration verticalDecoration = new DividerItemDecoration(recyclerview.getContext(),
            DividerItemDecoration.HORIZONTAL);
    Drawable verticalDivider = ContextCompat.getDrawable(getActivity(), R.drawable.vertical_divider);
    verticalDecoration.setDrawable(verticalDivider);
    recyclerview.addItemDecoration(verticalDecoration);
    
    DividerItemDecoration horizontalDecoration = new DividerItemDecoration(recyclerview.getContext(),
            DividerItemDecoration.VERTICAL);
    Drawable horizontalDivider = ContextCompat.getDrawable(getActivity(), R.drawable.horizontal_divider);
    horizontalDecoration.setDrawable(horizontalDivider);
    recyclerview.addItemDecoration(horizontalDecoration);

효과가있었습니다. 변경한다면 horizontal_divider.xml을 분할 폭과 vertical_divider.xml 분할 높이로, 각 만들 수 DividerItemDecoration같은을 : verticalDecoration = new DividerItemDecoration(recyclerview.getContext(), DividerItemDecoration.VERTICAL);horizontalDecoration = new DividerItemDecoration(recyclerview.getContext(), DividerItemDecoration.HORIZONTAL);.
Ruben O. Chiavone

33

이 모든 대답은 나에게 가깝게되었지만 각각 중요한 세부 사항이 누락되었습니다. 약간의 연구를 한 후 가장 쉬운 경로는 다음 3 단계의 조합이라는 것을 알았습니다.

  1. 지원 라이브러리의 DividerItemDecoration 사용
  2. 올바른 색으로 구분선 만들기
  3. 는 AS 테마에이 디바이더를 설정 listDivider

1 단계 : RecyclerView를 구성하는 동안

recyclerView.addItemDecoration(
        new DividerItemDecoration(context, layoutManager.getOrientation()));

2 단계 : res / drawable / divider_gray.xml과 같은 파일에서

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <size android:width="1px" android:height="1px" />
    <solid android:color="@color/gray" />
</shape>

3 단계 : 앱 테마

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Other theme items above -->
    <item name="android:listDivider">@drawable/divider_gray</item>
</style>

편집 : 마지막 분배기를 건너 뛰도록 업데이트되었습니다.
이 비트를 사용한 후 마지막 항목 다음에 분배기를 그리는 것이 깨달았습니다. 그래서 DividerItemDecoration의 기본 동작을 재정의하기 위해 다음과 같이 1 단계를 수정 했습니다 (물론 별도의 클래스를 만드는 것이 다른 옵션입니다).

recyclerView.addItemDecoration(
        new DividerItemDecoration(context, layoutManager.getOrientation()) {
            @Override
            public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
                int position = parent.getChildAdapterPosition(view);
                // hide the divider for the last child
                if (position == parent.getAdapter().getItemCount() - 1) {
                    outRect.setEmpty();
                } else {
                    super.getItemOffsets(outRect, view, parent, state);
                }
            }
        }
);

7
getItemOffsets를 재정의해도 효과가없는 것 같습니다. 오버라이드하고 절대 슈퍼를 호출하지 않아도 디바이더는 여전히 그려집니다. 무엇이 바뀌 었는지 확실하지 않습니다.
lostintranslation

2
그것은 나에게도 효과가 없다. 마지막 분배기가 여전히 표시됩니다.
Sotti

1
DividerItemDecoration의 소스를 복사하여 나만의 분배기 클래스를 만들고 마지막 구분선을 그리지 않도록 조금 변경했습니다. 방법을 도면에서, 단지 마지막 자식보기를 무시 : for (int i = 0; i < childCount; i++) 로 변경for (int i = 0; i < childCount - 1; i++)
kientux

ItemDecoration은 목록 항목 ( "아래"목록 항목) 앞에 그려 지므로 주어진 솔루션은 목록 항목의 배경이 100 % 불투명하거나 장식 드로어 블이 100 % 투명한 경우에만 작동합니다 (따라서 사용자는 recyclerView의 배경을 볼 수 있습니다). 그렇지 않으면 분할은 더 당신이) (getItemOffsets에 반환 것을 볼 문제가되지 않습니다
ernazm

31

아이템 어댑터 끝에 뷰를 추가하기 만하면됩니다.

<View
 android:layout_width="match_parent"
 android:layout_height="1dp"
 android:background="#FFFFFF"/>

25
이 솔루션을 사용하면 목록 끝에 분할 선도 표시됩니다.
Arià

5
마지막 행은 onBindViewHolder에서 이와 같이 말하여 프로그래밍 방식으로 제거 if(position == getItemCount() - 1) { mDividerView.setVisibility(View.INVISIBLE) }하거나 다른 방법이 있어야합니다.
알리 카지

대부분의 시간, 1px높이 의 마지막 줄 은 우리의 눈에 보이지 않습니다
Mehdi Khademloo

@LucasDiego 이것은 작동하지만 팽창이 비싸다는 것을 알고 있습니다.
Zohra Khan

21

간단한 사용자 지정 분배기 (수직 분배기 / 1dp 높이 / 검정) 코드는 다음과 같습니다.

지원 라이브러리가 있다고 가정합니다.

compile "com.android.support:recyclerview-v7:25.1.1"

자바 코드

    DividerItemDecoration divider = new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL);
    divider.setDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.my_custom_divider));
    recyclerView.addItemDecoration(divider);

custom_divider.xml 파일 샘플 :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <size android:height="1dp" />
    <solid android:color="@android:color/black" />
</shape>

10

res / drawable 폴더 에 별도의 xml 파일 만들기

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <size android:height="1dp" />
    <solid android:color="@android:color/black" />
</shape>

다음 과 같이 주요 활동 에서 해당 XML 파일 (your_file)을 연결하십시오 .

DividerItemDecoration divider = new DividerItemDecoration(
    recyclerView.getContext(),
    DividerItemDecoration.VERTICAL
);
divider.setDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.your_file));
recyclerView.addItemDecoration(divider);

패딩을 추가하는 방법? 모양의 패딩을 사용하면 작동하지 않습니다.
Makalele


8

나는 당신이 Fragments가지고 있다고 생각합니다RecyclerView

객체 RecyclerViewLayoutManager객체를 만든 후이 라인을 추가하기 만하면됩니다.

DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
                DividerItemDecoration.VERTICAL);
        recyclerView.addItemDecoration(dividerItemDecoration);

그게 다야!

HORIZONTAL 및 VERTICAL 방향을 모두 지원합니다.


8

이 간단한 한 줄 코드를 사용해보십시오

recyclerView.addItemDecoration(new DividerItemDecoration(getContext(),LinearLayoutManager.VERTICAL)); 

7

다음 줄을 추가해야합니다 ...

mRecyclerView.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));

7

Divider보기와 Divider Insets를 처리하는 방법은 RecyclerView 확장을 추가하는 것입니다.

1.

View 또는 RecyclerView의 이름을 지정하여 새 확장 파일을 추가하십시오.

RecyclerViewExtension.kt

setDividerRecyclerViewExtension.kt 파일 내에 확장 메소드를 추가 하십시오.

/*
* RecyclerViewExtension.kt
* */
import androidx.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView


fun RecyclerView.setDivider(@DrawableRes drawableRes: Int) {
    val divider = DividerItemDecoration(
        this.context,
        DividerItemDecoration.VERTICAL
    )
    val drawable = ContextCompat.getDrawable(
        this.context,
        drawableRes
    )
    drawable?.let {
        divider.setDrawable(it)
        addItemDecoration(divider)
    }
}

2.

drawable패키지 내에 Drawable 리소스 파일을 recycler_view_divider.xml다음 과 같이 만듭니다 .

<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="10dp"
    android:insetRight="10dp">

    <shape>
        <size android:height="0.5dp" />
        <solid android:color="@android:color/darker_gray" />
    </shape>

</inset>

위치를 왼쪽과 오른쪽 지정할 수 있습니다 마진android:insetLeftandroid:insetRight.

삼.

RecyclerView가 초기화 된 활동 또는 조각에서 다음을 호출하여 사용자 정의 드로어 블을 설정할 수 있습니다.

recyclerView.setDivider(R.drawable.recycler_view_divider)

4.

건배 🍺

분배기가있는 RecyclerView 행.


6

따라서 이것은 올바른 방법이 아닐 수도 있지만 RecyclerView의 단일 항목보기에 뷰를 추가했습니다 (내장 기능이 없다고 생각하므로).

<View
    android:layout_width="fill_parent"
    android:layout_height="@dimen/activity_divider_line_margin"
    android:layout_alignParentBottom="true"
    android:background="@color/tasklist_menu_dividerline_grey" />

즉, 각 항목에는 맨 아래에 채워지는 줄이 있습니다. 나는 #111111배경으로 약 1dp 높이로 만들었습니다 . 이것은 또한 일종의 "3D"효과를줍니다.


2
-이 방법이 아니다
아난드 티 와리

5

간단한 재사용 가능한 분배기를 만들 수 있습니다.

분배기 만들기 :

public class DividerItemDecorator extends RecyclerView.ItemDecoration {
    private Drawable mDivider;

    public DividerItemDecorator(Drawable divider) {
        mDivider = divider;
    }

    @Override
    public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
        int dividerLeft = parent.getPaddingLeft();
        int dividerRight = parent.getWidth() - parent.getPaddingRight();

        int childCount = parent.getChildCount();
        for (int i = 0; i < childCount; i++) {
            View child = parent.getChildAt(i);

            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();

            int dividerTop = child.getBottom() + params.bottomMargin;
            int dividerBottom = dividerTop + mDivider.getIntrinsicHeight();

            mDivider.setBounds(dividerLeft, dividerTop, dividerRight, dividerBottom);
            mDivider.draw(canvas);
        }
    }
}

디바이더 라인 만들기 : divider.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="1dp"
        android:height="1dp" />
    <solid android:color="@color/grey_300" />
</shape>

Recyclerview에 분배기를 추가하십시오.

RecyclerView.ItemDecoration dividerItemDecoration = new DividerItemDecorator(ContextCompat.getDrawable(context, R.drawable.divider));
recyclerView.addItemDecoration(dividerItemDecoration);

마지막 항목에 대한 구분선을 제거하려면

마지막 항목에 대한 구분선 그리기를 방지하려면이 선을 변경해야합니다.

for (int i = 0; i < childCount; i++) 

for (int i = 0; i < childCount-1; i++)

최종 구현은 다음과 같아야합니다.

public class DividerItemDecorator extends RecyclerView.ItemDecoration {
    private Drawable mDivider;

    public DividerItemDecorator(Drawable divider) {
        mDivider = divider;
    }

    @Override
    public void onDraw(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
        int dividerLeft = parent.getPaddingLeft();
        int dividerRight = parent.getWidth() - parent.getPaddingRight();

        int childCount = parent.getChildCount();
        for (int i = 0; i < childCount - 1; i++) {
            View child = parent.getChildAt(i);

            RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();

            int dividerTop = child.getBottom() + params.bottomMargin;
            int dividerBottom = dividerTop + mDivider.getIntrinsicHeight();

            mDivider.setBounds(dividerLeft, dividerTop, dividerRight, dividerBottom);
            mDivider.draw(canvas);
        }
    }
}

그것이 도움이되기를 바랍니다 :)


1
이것은 완벽하게 작동합니다. 왜 이것이 받아 들여지지
않는지 모르겠습니다

2

yqritc의 RecyclerView-FlexibleDivider 는 이것을 하나의 라이너로 만듭니다. 먼저 이것을 당신의 build.gradle:

compile 'com.yqritc:recyclerview-flexibledivider:1.4.0' // requires jcenter()

이제 recyclerView의 어댑터를 설정 한 분배기를 구성하고 추가 할 수 있습니다.

recyclerView.setAdapter(myAdapter);
recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this).color(Color.RED).sizeResId(R.dimen.divider).marginResId(R.dimen.leftmargin, R.dimen.rightmargin).build());

16
@Gaurav, HorizontalDividerItemDecoration수업 은 어디에 있습니까 ?
iRuth

@iRuth, .gradle 파일에 maven 라이브러리를 추가해야합니다. github.com/yqritc/RecyclerView-FlexibleDivider
Hakem Zaied

5
이것은 불완전한 답변입니다. 다운 투표가 적절할 수도 있습니다.
주말

그것의 좋은 3 번째 파티 LIB 그 @ gaurav-vachhani에 필요한 것을 언급
앤드류 V.

2

안드로이드는 불행히도 작은 일을 너무 복잡하게 만듭니다. DividerItemDecoration을 구현하지 않고 원하는 것을 달성하는 가장 쉬운 방법은 다음과 같습니다.

RecyclerView에 배경색을 원하는 구분선 색상으로 추가하십시오.

<RecyclerView
    android:id="@+id/rvList"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@color/colorLightGray"
    android:scrollbars="vertical"
    tools:listitem="@layout/list_item"
    android:background="@android:color/darker_gray"/>

항목의 레이아웃 루트 (list_item.xml)에 아래쪽 여백 (android : layout_marginBottom)을 추가하십시오.

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="1dp">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="John Doe" />

    <TextView
        android:id="@+id/tvDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvName"
        android:text="Some description blah blah" />

</RelativeLayout>

이것은 항목과 RecyclerView의 배경색 사이에 1dp 간격을 제공해야합니다 (진한 회색은 분배기로 나타납니다).


1

NJ의 답변을 조금 더 간단하게 만들려면 다음을 수행하십시오.

public class DividerColorItemDecoration extends DividerItemDecoration {

    public DividerColorItemDecoration(Context context, int orientation) {
        super(context, orientation);
        setDrawable(ContextCompat.getDrawable(context, R.drawable.line_divider));
    }
}

1

의 항목 하단에 x 크기의 여백을 추가하기 만하면 RecycleView Adapter됩니다.

onCreateViewHolder

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(0, 0, 0, 5);
itemView.setLayoutParams(layoutParams);

1
recyclerview.addItemDecoration(new DividerItemDecoration(this, 0));

어디를 0수평과 1Veritical입니다


3
지원 라이브러리의 다음 릴리스에서 값이 변경 될 수 있으므로 상수 변수를 사용하는 것이 좋습니다.
Irshu

true .. 0 또는 1 대신 LinearLayoutManager.HORIZONTAL 또는 LinearLayoutManager.VERTICAL을 사용해야합니다.
Freny Christian

0
  class ItemOffsetDecoration(
        context: Context,
        private val paddingLeft: Int,
        private val paddingRight: Int
    ) : RecyclerView.ItemDecoration() {
        private var mDivider: Drawable? = null

        init {
            mDivider = ContextCompat.getDrawable(context, R.drawable.divider_medium)
        }

        override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
            val left = parent.paddingLeft + paddingLeft
            val right = parent.width - parent.paddingRight - paddingRight
            val childCount = parent.childCount
            for (i in 0 until childCount) {
                val child = parent.getChildAt(i)
                val params = child.layoutParams as RecyclerView.LayoutParams
                val top = child.bottom + params.bottomMargin
                val bottom = top + (mDivider?.intrinsicHeight ?: 0)

                mDivider?.let {
                    it.setBounds(left, top, right, bottom)
                    it.draw(c)
                }
            }
        }
    }

R.drawable.divider_medium에 색상을 지정하면됩니다.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/black" />
    <size
        android:height="1dp"
        android:width="1dp" />

</shape>

그것을 recyclerView에 추가하십시오

recyclerView.addItemDecoration(
                        ItemOffsetDecoration(
                            this,
                            resources.getDimension(resources.getDimension(R.dimen.dp_70).roundToInt()).roundToInt(),
                            0
                        )
                    )

이것을 참조


0

Bhuvanesh BS 솔루션이 작동합니다. 이것의 코 틀린 버전 :

import android.graphics.Canvas
import android.graphics.drawable.Drawable
import androidx.recyclerview.widget.RecyclerView

class DividerItemDecorator(private val mDivider: Drawable?) : RecyclerView.ItemDecoration() {

    override fun onDraw(
        canvas: Canvas,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {

        val dividerLeft = parent.paddingLeft
        val dividerRight = parent.width - parent.paddingRight
        for (i in 0 until parent.childCount - 1) {
            val child = parent.getChildAt(i)
            val dividerTop =
                child.bottom + (child.layoutParams as RecyclerView.LayoutParams).bottomMargin
            val dividerBottom = dividerTop + mDivider!!.intrinsicHeight
            mDivider.setBounds(dividerLeft, dividerTop, dividerRight, dividerBottom)
            mDivider.draw(canvas)
        }
    }
}

0

가장 쉬운 방법이라고 생각합니다

mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
                DividerItemDecoration.VERTICAL);
// or DividerItemDecoration.HORIZONTALL
        mDividerItemDecoration.setDrawable(getDrawable(R.drawable.myshape));
        recyclerView.addItemDecoration(mDividerItemDecoration);

참고 : myshape는 칸막이를 만들고 싶은 높이로 직교 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.