본문으로 바로가기

RecyclerView의 scroll position을 이동시키고 싶은 경우 

recycler_view.scrollToPosition(20)

또는

layoutManager.scrollToPosition(20)

을 이용하여 이동시키게 되지만 이는 상단기준으로 20번째 아이템으로 이동하게 된다. (아래 이미지는 position: 0이 text가 1인 아이템)

이것을 하단기준의 20번째 아이템으로 이동시키고 싶은 경우

val smoothScroller = object : LinearSmoothScroller(this) {
    override fun getVerticalSnapPreference(): Int {
        return LinearSmoothScroller.SNAP_TO_END
    }
}

smoothScroller.targetPosition = 20
layoutManager.startSmoothScroll(smoothScroller)

 위 코드로 수직(Vertical) 스크롤 뷰에서 하단기준으로 position이 이동하게 된다.

수평(Horizontal) 스크롤 뷰에서는 getVerticalSnapPreference -> getHorizontalSnapPreference 으로 변경하면 오른쪽 기준으로 변경된다.