본문 바로가기

Programming/Android_Kotlin

RecyclerView 첫 번째, 마지막 아이템 간격 주기

구현을 하다보면 위 사진처럼 RecyclerView의 첫 번째 아이템에만 간격을 주고싶을 때가 있다. 하지만 이럴 때 RecyclerView의 왼쪽에 Margin을 주는 방식으로 구현한다면 스크롤이 잘리게 돼서 모양이 안 예쁘다.

 

<androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:orientation="horizontal"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        tools:listitem="@layout/item_profile"/>

 

우리가 원하는 건 이런 느낌이 아니다.

이런 저런 방법을 찾아봤는데 생각보다 간단히 구현이 가능했다. clipToPadding 속성을 false로 주고 padding을 주면 원하는 대로 구현이 된다.

padding만 줄 경우 margin을 줬을 때처럼 스크롤이 잘리게 되는데, clipToPadding을 false로 설정한다면 padding을 주되 스크롤이 잘리지 않는다.

 

<androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingHorizontal="20dp"
        android:clipToPadding="false"
        android:orientation="horizontal"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        tools:listitem="@layout/item_profile"/>

 

RecyclerView 자체는 padding의 영향을 받지 않고 스크롤이 원하는 대로 구현되는 것을 확인할 수 있다.