답변:
NestedScrollView
이름에서 알 수 있듯이 다른 스크롤보기 안에 스크롤보기가 필요할 때 사용됩니다. 일반적으로 시스템에서 스크롤 할보기를 결정할 수 없으므로이 작업을 수행하기가 어렵습니다.
여기가 NestedScrollView
온다.
중첩 스크롤 외에도 NestedScrollView
하나의 주요 기능이 추가되어 중첩 컨텍스트 외부에서도 흥미를 유발할 수 OnScrollChangeListener
있습니다. 추가 OnScrollChangeListener
원본에 ScrollView
API (23) 아래의 서브 클래스 요구 ScrollView
또는 와 장난 ViewTreeObserver
의ScrollView
어떤 종종 서브 클래스보다 더 많은 작업을 의미한다. 내장 setter를NestedScrollView
사용하여 수행 할 수 있습니다 .
주어진 답변에 나열된 장점 외에도 ScrollView보다 NestedScrollView의 또 다른 장점은 CoordinatorLayout과의 호환성입니다. ScrollView는 CoordinatorLayout과 협력하지 않습니다. 툴바에 대한 "스크롤 오프 스크린"동작을 얻으려면 NestedScrollView를 사용해야합니다.
NestedScrollView
NestedScrollView는 ScrollView와 비슷하지만 Android의 새 버전과 이전 버전 모두에서 중첩 스크롤 부모와 자식 역할을 모두 지원합니다. 중첩 스크롤은 기본적으로 활성화되어 있습니다.
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
사용자가 스크롤 할 수있는 뷰 계층 구조의 레이아웃 컨테이너로, 실제 디스플레이보다 클 수 있습니다. ScrollView는 FrameLayout입니다. 즉, 스크롤 할 전체 내용이 포함 된 자식 하나를 배치해야합니다. 이 자식 자체는 복잡한 객체 계층 구조를 가진 레이아웃 관리자 일 수 있습니다.
https://developer.android.com/reference/android/widget/ScrollView.html
NestedScrollView는 ScrollView와 비슷하지만 NestedScrollView에서는 다른 스크롤보기를 자식의 하위 항목 (예 : RecyclerView)으로 넣을 수 있습니다.
그러나 RecycledView를 NestedScrollView 안에 넣으면 RecyclerView의 부드러운 스크롤이 방해받습니다. 따라서 부드러운 스크롤을 다시 얻으려면 트릭이 있습니다.
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
recyclerView에 대한 어댑터를 설정 한 후 위의 줄을 넣으십시오.