[Android] NestedScrollView에서 Horizontal RecyclerView 사용 대응

개발세발·2023년 3월 11일
0

안드로이드개발

목록 보기
5/5

디자인 요구사항에 맞게 다음과 같은 화면을 구현해야 했다.

  • CoordinatorLayout과 AppBarLayout을 사용하여 일정 높이를 화면 스크롤 시 툴바가 보이도록 구현
  • AppBarLayout 하단에는 Horizontal한 RecyclerView와 Vertical한 RecyclerView를 포함

Figma에 디자이너의 작업물을 보며 NestedScrollView를 사용해 화면을 구현하던 중 다음과 같은 현상이 발생했다.


이슈

  • horizontal 속성의 recyclerview를 잡고 화면을 스크롤하면 AppBarLayout 영역이 스크롤 되지 않음

위와 같이 AppBarLayout 영역은 무시한 채, NestedScrollView 영역만 스크롤이 된다. (horizontal recyclerview 외 영역을 잡고 스크롤 하면 정상 작동)


해결

  • horizontal recyclerview의 nestedScrollingEnabled 를 false로 설정
binding.rvMainContentsRecommend.apply {
            layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
            addItemDecoration(SpaceItemDecoration(16))
            adapter = recommendRecyclerViewAdapter
            isNestedScrollingEnabled = false // nestedScrolling 적용안함
        }

NestedScrollView의 상하 스크롤과 Horizontal RecyclerView의 좌우 스크롤이 깔끔하게 동작한다.

profile
좋은 개발자가 되기 위한 세 걸음

0개의 댓글