펩시티433
158
2020-07-27 11:41:47
6
1249

안드로이드 NestedScrollView 안에 RecyclerView 2개 사용시 이중 스크롤 문제


안녕하세요. 현재 뷰 구성중에 NestedScrollView안에 RecyclerView를 2개 사용하게 되어서 스크롤 시에 이중 스크롤이 발생하는 문제가 생겼습니다. 알아보니 CoordinateLayout을 사용하라는 말을 들었는데 예제를 잘 살펴봐도 아직 이해도가 부족해서 좋은 예제가 있는 블로그 url이나 가이드가 있을까요. 아니면 다르게 해결할 수 있는 방법이 있을까요?

0
  • 답변 6

  • OkkyActivity
    442
    2020-07-27 12:07:06

    사실 Nested ScrollView 에 Recycler view 를 사용하시면 

    Recycler View 를 쓰시는 의미가 없습니다.


    Recycler View 는 네이밍 그대로 "Data 만 다르고 view 형태가 반복되는 것을 재활용해서 메모리 효율을 높이는" 뷰 인데

    Nested ScrollView 안에서는 이런 재활용이 되지 않습니다~


    근데 이상하네요. 

    보통 일반 ScrollView + Recycler View 조합이 이중스크롤 이슈가 발생하고

    Nested ScrollView + Recycler View 조합은 위에 말씀드린것처럼 재활용 이슈때문에 거의 사용하지 않는 편인데.

    (Nested SCrollView 안에 있는 Recycler View 는 스크롤 없이 자식을 한번에 모두 생성하기 때문입니다)


    아무튼 Recycler View 는 어떤 이유로든 ScrollView 와 조합해서 사용하는건 비추입니다.

    Recycler View 에 View type 을 다르게 잡아서 하나의 Recycler View 에 

    여러개의 View type 을 가지는 형식으로 구현해야 합니다~

  • OkkyActivity
    442
    2020-07-27 12:11:19

    예를 들어 


    <ScrollView>
        <TextView />
        <ImageView />
        <RecyclerView />
        <Button />
    </ScrollView>


    이런 식의 구현이었다면



    <RecyclerView>
        <TextView /> <!-- ViewType 1 -->
        <ImageView /> <!-- ViewType 2 -->
        <RowView.... /> <!-- ViewType 3 -->
        <RowView.... /> <!-- ViewType 3 -->
        <RowView.... /> <!-- ViewType 3 -->
        <RowView.... /> <!-- ViewType 3 -->
        .......
        <Button /> <!-- ViewType 4 -->
    </RecyclerView>

     이렇게 궇ㄴ하시는게 정신건강에 이롭습니다~~

  • 펩시티433
    158
    2020-07-27 12:14:24

    sb10529 님 답변 감사 드립니다!

    많은 도움이 되었습니다.


  • 펩시티433
    158
    2020-07-27 12:16:24

    그렇다면 각각의 ViewHolder를 만들어줘야 하는건가요?

  • OkkyActivity
    442
    2020-07-27 13:25:21

    넹 각각의 뷰타입별로 뷰홀더를 만들어서 create 와 bind 를 구현하셔야합니당~+

  • 펩시티433
    158
    2020-07-27 15:05:42

    sb10529 

    넵! 감사드립니다~

  • 로그인을 하시면 답변을 등록할 수 있습니다.