📱 Android
[Android] ViewPager2 감도 조절하기
콩드로이드
2025. 2. 8. 19:15
viewpager2를 카드뷰처럼 넘기고 싶은데 너무 휙휙 돌아가지는 거 같아서 서치하다 찾은 방법이다
ViewPager2는 ViewPager와 다르게 RecyclerView를 기반이라 recyclerview내에 스크롤 감도를 조절하는 mTouchSlop을 변경하면 된다
fun ViewPager2.reduceDragSensitivity() {
val recyclerViewField = ViewPager2::class.java.getDeclaredField("mRecyclerView")
recyclerViewField.isAccessible = true
val recyclerView = recyclerViewField.get(this) as RecyclerView
val touchSlopField = RecyclerView::class.java.getDeclaredField("mTouchSlop")
touchSlopField.isAccessible = true
val touchSlop = touchSlopField.get(recyclerView) as Int
touchSlopField.set(recyclerView, touchSlop * 8) // 원하는 숫자
}
touchSlop 값은 유저가 스와이프할 때 인식되는 최소 거리라, 값을 높일수록 드래그 감도가 낮아진다고 생각하면 된다
하지만 이 방법은 내부 필드에 접근 하는 방법이라 업데이트가 된다면..! 안 먹히는 방법이 될 수도 있다 ..!