ScrollView 또는 RecyclerView는 스크롤이 제공되는 View 입니다. 각각 스크롤 위치를 제어하는데 비슷하면서 조금 차이도 가지고 있어 함께 정리하였습니다.           1. ScrollView 스크롤 위치 제어 ScrollV...

[안드로이드] ScrollView/RecyclerView 스크롤 위치 내마음대로

 

ScrollView 또는 RecyclerView는 스크롤이 제공되는 View 입니다.

각각 스크롤 위치를 제어하는데 비슷하면서 조금 차이도 가지고 있어 함께 정리하였습니다.


 

 

 

 

 

1. ScrollView 스크롤 위치 제어

ScrollView 클래스의 "scrollTo", "smoothScrollTo" 메서드를 사용합니다.

해당 메서드를 사용하면 원하는 스크롤 위치로 제어가 가능합니다.

scrollTo는 즉시 이동시키고 smoothScrollTo는 부드럽게 이동시키는 차이를 가지고 있습니다.

사용 예시는 아래와 같습니다.

 

 

[스크롤 맨 위로 올리기]

//binding.scrollView.scrollTo(0, binding.scrollView.top) // 즉시 이동
binding.scrollView.smoothScrollTo(0, binding.scrollView.top) // 부드럽게 이동



[스크롤 맨 아래로 내리기]

//binding.scrollView.scrollTo(0, binding.scrollView.bottom) // 즉시 이동
binding.scrollView.smoothScrollTo(0, binding.scrollView.bottom) // 부드럽게 이동


 

[스크롤 특정 위치로 이동]

//binding.scrollView.scrollTo(0, position) // 즉시 이동
binding.scrollView.smoothScrollTo(0, position) // 부드럽게 이동

 

 

 

 

2. RecyclerView 스크롤 위치 제어

RecyclerView 클래스의 "scrollToPosition", "smoothScrollToPostion" 메서드를 사용합니다.

ScrollView와 다르게 RecyclerView 아이템 인덱스(Position) 위치를 인자로 사용됩니다.

마찬가지로 scrollToPosition는 즉시 이동, smoothScrollToPostion는 부드럽게 이동합니다.

사용 예시는 아래와 같습니다.

 

 

[스크롤 맨 위로 올리기]

//binding.rvItems.scrollToPosition(0) // 즉시 이동
binding.rvItems.smoothScrollToPosition(0) // 부드럽게 이동



[스크롤 맨 아래로 내리기]

val itemCount = recyclerViewAdapter.itemCount
if (itemCount > 0) {
//binding.rvItems.scrollToPosition(itemCount - 1) // 즉시 이동
binding.rvItems.smoothScrollToPosition(itemCount - 1) // 부드럽게 이동
}



[스크롤 특정 위치로 이동]

//binding.rvItems.scrollToPosition(position) // 즉시 이동
binding.rvItems.smoothScrollToPosition(position) // 부드럽게 이동

 

 

 

0 comments: