Decoration

똘이주인·2021년 8월 9일
0

ItemDecoration 클래스는 RecyclerView 내부에 있는 추상 클래스이다.

이름처럼 RecyclerView의 아이템들을 꾸미는 역할을 한다.

그 중에서도 유용한 것은 RecyclerView 내의 아이템이나 그룹들 간의 '구분자(divider)'를 설정할 수 있다.

내부함수

1. onDraw
public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent,	@NonNull State state) {
	onDrawOver(c,parent);
}

공식문서의 설명처럼 해당 함수는 recyclerView의 아이템 그려진 전에 호출되므로 아이템보다 아래에 위치하게 된다.

아이템 때문에 가려져 안보일 수도 있다.

2. onDrawover
public void onDrawOver(@NonNull Canvas c, @NonNull RecyclerView parent,
		@NonNull State state) {
	onDrawOver(c,parent);
}

공식문서의 설명처럼 해당 함수는 recyclerView의 아이템 그려진 후에 호출되므로 아이템보다 위에 위치하게 된다.

아이템 때문에 가려지는 일은 없지만 아이템을 가릴 수 없다.

  1. getItemOffsets

RecyclerView의 measureChild 성격의 메소드들을 통해 호출되며 커스텀하게 getItemOffset을 구현하지 않는다면 크기가 없는 rect을 반환해 아무런 동작을 하지 않는다.

그래서 아이템간의 구분자를 설정하기 위해서는 해당 메소드를 오버라이딩해 rect을 설정해주면 된다.

0개의 댓글