코딩하는 일용직 노동자

NestedScrollView 스크롤 현상 수정. 본문

안드로이드

NestedScrollView 스크롤 현상 수정.

bacass 2021. 5. 5. 12:32

ScrollView 안에 ScrollView나 RecyclerView 처럼 또다른 스크롤이 가능한 뷰를 넣을 경우가 생기게 됩니다.
그럴때 이용하는 것이 NestedScrollView 입니다.
이름처럼 중첩된 스크롤뷰를 만들때 사용하는 것입니다.

NestedScrollView 도 ScrollView 처럼 내부에 하나의 View 만 갖을 수 있습니다.
보통 내부에 LinearLayout 을 두고 거기서 여러 View 들을 구성해놓게 됩니다.

NestedScrollView에 RecyclerView 를 넣어놨더니 화면이 열리면서 그쪽으로 스크롤이 되는 현상을 볼 수 있습니다.

구글링을 검색해보니 화면이 그려지면서 NestedScrollView 안에 또다른 스크롤이 가능한 View 인 RecyclerView 쪽에 포커스가 잡히기 때문에 화면이 아래로 스크롤 된 것이었습니다.

해결 방법은 생각보다 간단합니다.
포커스를 가져가던 RecyclerView 의 바로 위 레이아웃에 

android:descendantFocusability="blocksDescendants"


이것을 추가해주면 됩니다.

포커스를 차지하지 못하도록 하는 처리.

이렇게 하면 포커스를 가져가지 못하기 때문에 화면이 열리면서 아래로 스크롤 되는 현상을 막을 수 있습니다.