안드로이드 : ScrollView vs NestedScrollView


160

차이점은 무엇이며 ScrollView그리고 NestedScrollView? 둘 다 확장 FrameLayout합니다. 나는 둘 다의 장단점을 알고 싶습니다.


답변:


205

NestedScrollView이름에서 알 수 있듯이 다른 스크롤보기 안에 스크롤보기가 필요할 때 사용됩니다. 일반적으로 시스템에서 스크롤 할보기를 결정할 수 없으므로이 작업을 수행하기가 어렵습니다.

여기가 NestedScrollView온다.


다음은 부모 ScrollView 내에서 NestedScrollView를 보여주는 샘플 앱입니다. github.com/AdamSHurwitz/NestedScrolling
Adam Hurwitz

36

중첩 스크롤 외에도 NestedScrollView하나의 주요 기능이 추가되어 중첩 컨텍스트 외부에서도 흥미를 유발할 수 OnScrollChangeListener있습니다. 추가 OnScrollChangeListener원본에 ScrollView API (23) 아래의 서브 클래스 요구 ScrollView또는 와 장난 ViewTreeObserverScrollView 어떤 종종 서브 클래스보다 더 많은 작업을 의미한다. 내장 setter를NestedScrollView 사용하여 수행 할 수 있습니다 .



21

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


8

NestedScrollView는 ScrollView와 비슷하지만 NestedScrollView에서는 다른 스크롤보기를 자식의 하위 항목 (예 : RecyclerView)으로 넣을 수 있습니다.

그러나 RecycledView를 NestedScrollView 안에 넣으면 RecyclerView의 부드러운 스크롤이 방해받습니다. 따라서 부드러운 스크롤을 다시 얻으려면 트릭이 있습니다.

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

recyclerView에 대한 어댑터를 설정 한 후 위의 줄을 넣으십시오.


정말 고마워 친구 : D
Zafar Iqbal

이 작업 (Nested 내에서 recyclerView)은 레이아웃 패스 / 측정 측면에서 매우 비효율적입니다. 이를 테스트하면 RV가 "재활용"보기를 중지하는 방법을 볼 수 있습니다.
Martin Marconcini

2

중첩 스크롤 뷰를 사용하면 코리 네이터 레이아웃이 중첩 스크롤 이벤트 만 수신한다는 이점이 있다고 생각합니다. 예를 들어. 활동 내용을 스크롤 할 때 도구 모음이 아래로 스크롤되도록하려면 레이아웃에서 중첩 된 스크롤보기를 사용하는 경우에만 아래로 스크롤됩니다. 레이아웃에서 일반 스크롤보기를 사용하면 사용자가 내용을 스크롤 할 때 도구 모음이 스크롤되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.