🔥 Android 에서 TabLayout(+ViewPager) 와 RecyclerView 의 중복 스크롤 방지하기
Android 에서 TabLayout 에서 사용하는 Fragment 안에 ReyclerView 의 가로 스크롤 이벤트가 적용되지 않는 문제가 발생하였다.
이는 ViewPager 의 스크롤 이벤트도 가로 스크롤이고, RecyclerView 의 스크롤 방향도 가로 스크롤이기 때문에 발생한다.
RecyclerView 스크롤 시 부모인 ViewPager 가 스크롤 이벤트를 가져가기 때문이다.
따라서 RecyclerView 스크롤 시 부모로 스크롤 이벤트를 전달하지 않는 코드를 추가하여 해결하였다.
recyclerView.addOnItemTouchListener(object : RecyclerView.OnItemTouchListener {
override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
rv.parent.requestDisallowInterceptTouchEvent(true)
return false
}
override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) {
}
override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
}
})