마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

RecyclerView item 터치가 아닌 자체 View 터치 이벤트

0 추천

RecyclerVIew 자체 View에 대한 터치 이벤트를 설정하고 싶습니다.

item 터치 이벤트를 적용하면 그 아이템을 누른후 그 자리에서 손을 때면 ACTION_UP이 적용이 되지만 다른 아이템까지 영역까지 드래그를 하고 손을 때면ACTION_UP 이 적용이 되지 않습니다.

그래서 Recyclerview 자체의 터치 이벤트로 item영역에 상관없이 view내에서만 터치하면 실행되게 하고 싶습니다.

정확히 말하면 recyclerview를 누른 상태에서 드레그를 하며(item들도 스크롤이 되어야합니다...) 스크롤이 움직일 때의 이벤트를 발생시키고 싶습니다. 어떤 방법이 있을까요?

Recyclerview 자체 터치이벤트를 사진과 같이 설정하면 저런 경고 메세지가 뜨고,

저 코드에 각 액션의 경우를 넣어서 실행을 해봤는데도 어탭터에서 설정한 item 터치 이벤트만 실행이되고 저 코드는 실행이 안되는 것 같네요.

 

어떤 방법이 있을까요?

lns0mnia (380 포인트) 님이 2021년 7월 8일 질문
원하시는 기능이 혹시 드래그 드롭인가요?
제가 원하는 기능을 정확히 말씀 드리면
RecyclerView 안에 RecyclerView를 넣어서 큰 리스트안에 세부사항으로 작은 리스트를 보여주는데
안에 있는 RecyclerView를 스크롤을 해도 세부사항 리스트가 움직이지 않고 밖에 있는 RecyclerView의 스크롤만 동작하게 됩니다.
그러다가 밖의 RecyclerView의 LinearLayoutManager에 canScrollVertically를 false로 했더니 그제서야 안의 RecyclerView가 스크롤이 가능하였습니다.
그래서 제가 생각해낸 것이 안의 RecyclerView에 터치 이벤트를 넣어서 터치를 할 시에 밖의 RecyclerView의 canScrollVertically를 false로 만들고 손을 땔시에 canScrollVertically를 true로 만들면 상황에 따라 모든 스크롤 동작이 될 것 같아서 한번 시도를 해보는 중입니다.
원하시는 기능이 Nested RecyclerView이신 것 같네요. 구글로 검색해 보시면 상당히 많은 예제를 찾아보실 수가 있습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...