반응형
안드로이드 개발하다보면 RecyclerView
의 사용은 거의 반강제?일정도로 자주 사용되고 있습니다.
최근에는 퀄리티 높은 많은 앱들이 생겨나면서 자연스레 UI/UX도 iOS만큼이나 향상되었습니다. 특히 앱내 상태바나
액션바(툴바) 애니메이션을 통해 그 사실을 쉽게 느낄 수 있습니다.
제가 이 말씀을 드리게 된 이유는 향상된 안드로이드의 UI/UX와 RecyclerView
스크롤은 밀접한 관련이 있는 경우가 많기 때문입니다.
그래서 오늘 제가 소개 시켜드릴 내용은 간단하지만 꽤나 유용하게 사용하실 수 있다고 생각합니다😊
내용은 RecyclerView
의 최상단 및 최하단의 스크롤 감지 방법입니다.
간단하게 정리하면 아래와 같습니다.
RecyclerView.OnScrollListener()
사용하기- 상황에 맞게 override된
onScrolled()
,onScrollStateChanged()
메소드 이용하기 canScrollVertically()
를 이용해 스크롤 가능여부 체크하기
코드는 아래와 같습니다.
rvViewer.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
if (recyclerView.canScrollVertically(-1) && recyclerView.canScrollVertically(1)) {
hideBars()
}
}
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
if (!recyclerView.canScrollVertically(-1) || !recyclerView.canScrollVertically(1)) {
showBars()
} else {
hideBars()
}
}
})
아마 OnScrollListener()
를 이용한 스크롤 감지는 많이들 사용해보셨을거라는 생각이 듭니다🤭
중점 포인트는 수직방향으로 스크롤이 가능한지 여부를 나타내는 canScrollVertically()
메소드입니다.
파라미터로는 direction(int) 값이 들어갑니다. 그래서 1이면 하단, -1이면 상단을 뜻합니다.
그런데! vertical 관련한 메소드가 있다면 당연히 horizontal 관련한 메소드도 있을 거라고 예상들 하셨겠죠?
canScrollHorizontally()
가 바로 그 메소드이며, 파라미터 direction이 1이면 오른쪽, -1이면 왼쪽 방향을 나타냅니다.
지금까지 부족한 글 읽어주셔서
감사합니다🙇♂️
반응형
'Android' 카테고리의 다른 글
[안드로이드 / Kotlin] Coroutine Flow debounce를 이용한 검색 구현 (0) | 2023.03.16 |
---|---|
[안드로이드 / Kotlin] 둥근 모서리 Bitmap 이미지 만들기 (0) | 2022.11.18 |
[안드로이드 / Kotlin] Snackbar에 커스텀 폰트 적용하기 (0) | 2022.11.08 |
[안드로이드] ConstraintLayout 뷰 밀림 문제 (0) | 2022.10.30 |
[안드로이드 / Kotlin] ViewPager2 setCurrentItem duration (0) | 2022.10.28 |