안드로이드 : ScrollView vs NestedScrollView
차이점은 무엇이며 ScrollView
그리고 NestedScrollView
? 둘 다 확장 FrameLayout
합니다. 나는 둘 다의 장단점을 알고 싶습니다.
NestedScrollView
이름에서 알 수 있듯이 다른 스크롤보기 안에 스크롤보기가 필요할 때 사용됩니다. 일반적으로 시스템에서 스크롤 할보기를 결정할 수 없으므로이 작업을 수행하기가 어렵습니다.
여기가 NestedScrollView
온다.
중첩 스크롤 외에도 NestedScrollView
하나의 주요 기능이 추가되어 중첩 컨텍스트 외부에서 재미있게 만들 수 있습니다 OnScrollChangeListener
. 추가 OnScrollChangeListener
원본에 ScrollView
API (23) 아래의 서브 클래스 요구 ScrollView
또는 와 장난 ViewTreeObserver
의ScrollView
어떤 종종 서브 클래스보다 더 많은 작업을 의미한다. 내장 setter를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
주어진 답변에 나열된 장점 외에도 ScrollView보다 NestedScrollView의 또 다른 장점은 CoordinatorLayout과의 호환성입니다. ScrollView는 CoordinatorLayout과 협력하지 않습니다. 툴바에 대한 "스크롤 오프 스크린"동작을 얻으려면 NestedScrollView를 사용해야합니다.
CoordinatorLayout의 자식으로 Scrollview를 사용하여 도구 모음이 축소되지 않습니다
NestedScrollView는 ScrollView와 유사하지만 NestedScrollView에서는 다른 스크롤보기를 자식의 하위 항목 (예 : RecyclerView)으로 넣을 수 있습니다.
그러나 RecyclerView를 NestedScrollView 안에 넣으면 RecyclerView의 부드러운 스크롤이 방해받습니다. 따라서 부드러운 스크롤을 다시 얻으려면 트릭이 있습니다.
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
recyclerView에 대한 어댑터를 설정 한 후 위의 줄을 넣으십시오.
중첩 스크롤 뷰를 사용하면 코리 네이터 레이아웃이 중첩 스크롤 이벤트 만 수신한다는 이점이 있다고 생각합니다. 예를 들어. 활동 내용을 스크롤 할 때 도구 모음이 아래로 스크롤되도록하려면 레이아웃에서 중첩 된 스크롤보기를 사용하는 경우에만 아래로 스크롤됩니다. 레이아웃에서 일반 스크롤보기를 사용하면 사용자가 내용을 스크롤 할 때 도구 모음이 스크롤되지 않습니다.
참고 URL : https://stackoverflow.com/questions/34773982/android-scrollview-vs-nestedscrollview
'Programming' 카테고리의 다른 글
R에서 가장 다양한 색상을 생성하는 방법은 무엇입니까? (0) | 2020.07.15 |
---|---|
각 그룹의 첫 번째 행을 선택하는 방법은 무엇입니까? (0) | 2020.07.15 |
데이터베이스 구조 변경을위한 버전 관리 시스템이 있습니까? (0) | 2020.07.15 |
Sass 및 결합 된 자식 선택기 (0) | 2020.07.15 |
overflow : hidden이 iPhone Safari에서 작동하도록 적용됩니까? (0) | 2020.07.15 |