티스토리 뷰

300x250
300x250



ListView 의 경우 아이템들을 구분하기 위한 구분선 (divider) 을 넣는 기능이 자체적으로 존재했다.

하지만, RecyclerView 는 해당 기능이 자체적으로 존재하지 않아 ItemDecoration 을 사용해야 한다.

이번 포스팅에서는 ItemDecoration 에 대해 알아보자.

 

[구분선 없음] [구분선 추가]



참고로, 지난 포스팅에서는 RecyclerView 에 image + text 출력, click 처리, menu 출력, Item 삽입, 수정, 삭제, header, footer 다는 방법에 대해 알아 보았다.

[Android/UI] - RecyclerView (7) - RecyclerView 에 header, footer 달기

[Android/UI] - RecyclerView (6) - RecyclerView item 추가, 수정, 삭제

[Android/UI] - RecyclerView (5) - RecyclerView item long click 시 popup menu 출력하기

[Android/UI] - RecyclerView (4) - RecyclerView item click 시 context menu 출력하기

[Android/UI] - RecyclerView (3) - RecyclerView item 의 click 처리하기

[Android/UI] - RecyclerView (2) - RecyclerView 에 image + text 출력하기



ItemDecoration

RecyclerView 내부에 있는 abstract class 로 item 간 구분선이나 여백을 설정할 수 있다.

 

RecyclerView.ItemDecoration  |  Android 개발자  |  Android Developers

RecyclerView.ItemDecoration public static abstract class RecyclerView.ItemDecoration extends Object java.lang.Object    ↳ androidx.recyclerview.widget.RecyclerView.ItemDecoration An ItemDecoration allows the application to add a special drawing and la

developer.android.com

◼ getItemOffsets

각 항목을 배치할 때 호출.

public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state)
cs

 

◼ onDraw

항목을 배치하기 전에 호출

public void onDraw(Canvas c, RecyclerView parent, State state)
cs

 

◼ onDrawOver

모든 항목이 배치된 후에 호출됩니다.

public void onDrawOver(Canvas c, RecyclerView parent, State state)
cs



구분선 추가

◼ 기본 구분선 추가

 

 

◼ 커스텀 구분선 추가

ItemDecoration 을 상속 받아 원하는 형태의 구분선을 추가할 수 있다.

 

 

 



여백 설정

하단과 같이 ItemDecoration 을 상속 받아 여백을 설정할 수 있다.

 

 

 



Source code

https://github.com/parkho79/RecyclerView_8



728x90
댓글