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 으로 변경하면 오른쪽 기준으로 변경된다.
'모바일 프로그래밍 > 안드로이드' 카테고리의 다른 글
[Android] RecyclerView 가변높이 지정하기 (1) | 2019.12.20 |
---|---|
Doze 모드란? Doze 모드 앱과 상호작용 최적화 (0) | 2019.08.02 |
DialogFragment 에서 초기화 지연(by lazy) 사용 시 발생한 버그 (0) | 2019.06.17 |
java.lang.IllegalStateException: Fragment already added: DialogFragment (0) | 2019.06.12 |
RecyclerView의 scrollToPosition나 smoothScrollToPosition 사용 시 Item사이의 margin이 있는 경우 (0) | 2019.05.10 |