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

NestedScrollView 문의

0 추천

 

전체 영역(B 포함) 은 ScrollView 입니다. 그리고 A 영역은 NestedScrollView 이고요.

A 영역에 뷰 크기보다 컨텐츠가 길면 A 영역 안에서만 스크롤이 됩니다.

B 영역을 스크롤 하면 전체 영역이 스크롤이 되고요. 여기까지는 정상적인 상황입니다.

 

궁금한 것은 A 영역에서 스크롤을 하다가 컨텐츠 영역만큼 스크롤이 끝나면 상위 스크롤뷰가 움직이는데요 이걸 막고 싶습니다.

즉, A 영역을 위로 스크롤 하면 전체 스크롤 영역은 움직이지 않고 있다가, A 영역 컨텐츠가 전부 스크롤 되었을 때 스크롤 이벤트가 상위 뷰까지 전달이 됩니다.

 

A 영역의 스크롤이 컨텐츠 영역까지 스크롤 되었다 하더라도 상위 스크롤뷰가 움직이지 않도록 제어하고 싶은데요. 어떤 방법이 있을까요?

drodro (140 포인트) 님이 2016년 4월 11일 질문
drodro님이 2016년 4월 21일 reshown

1개의 답변

+1 추천

해보지는 않았지만..

onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY)

이런 리스너가 있는데

리스너를 세팅하면 여기서 NestedScrollView 의 스크롤이 발생하면 이 메소드로 들어올텐데 그럼 여기서 

v가 A영역의 View가 선택된것이라면 부모뷰의 스크롤을 인터셉트 하면되지 않을까.. 예상해봅니다..

v.getParent().requestDisallowInterceptTouchEvent(false);

캬옹이 (37,920 포인트) 님이 2016년 4월 11일 답변
...