Android TabLayout(+ViewPager) + RecyclerView 스크롤 이벤트 처리하기

pass·2023년 9월 8일
0

Android

목록 보기
31/36

🔥 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) {
    
    }
})
profile
안드로이드 개발자 지망생

0개의 댓글