안드로이드에서 스크롤 뷰를 사용할 경우 보통 레이아웃의 ScrollView를 사용한다.
하지만 ScrollView 사용시에는 자식 뷰를 하나만 가질수 있고 내부의 뷰어를 컨트롤하기에 어려움을 가진다.
ex) 스크롤뷰 안에 리사이클러뷰가 있는 경우
이럴때 사용할수 있는 방법은 NestedScrollView가 있다. 내부 뷰어의 스크롤 상태, click상태를 컨트롤하기 쉽다 (이너뷰 컨트롤 메서드를 많이 제공)
NestedScrollView 안에서 다양한 아이탬을 컨트롤할때 스크롤이 갑자기 최 하단으로 이동하거나 버튼을 터치했을때, onClicklistener가 작동하지 않는다면 포지션을 자식 뷰에게 뺏겨서 생기는 문제일 수 있다. 이럴때는 xml에 android:descendantFocusability="blocksDescendants"를 추가해 자식뷰어에 포커스를 주지 않는 방법이 있다.
다반 NestedScrollView가 능사는 아니다.
100개의 Item을 Recyclerview를 통해 보여주는 모습.
위의 로그는 NestedScrollView를 추가한 경우,
아래는 Recyclerview만 추가한 경우
다음에서 볼수 있듯 NestedScrollView를 추가하면 한번에 모든 아이탬을 불러와 그려주는 모습을 볼 수 있다.
이는 뷰를 재활용해 메모리를 절약하는 Recyclerview의 이점을 전혀 살릴 수 없다.