
아래에 중첩 리사이클러뷰를 사용해야하는데 어댑터내에 어댑터를 사용해야하는지에 관한 글과 관련하여
질문들비니다.
질문하기 앞서 다시 기능을 간략하게 말씀드리면
사진은 리사이클러뷰의 아이템이고, 그 속에 다시 상세 정보를 표시하는 두번째 리사이클러뷰를 표시할 예정입니다. 메인 리사이클러뷰와 서브 리사이클러뷰라고 칭하겠습니다.
메인 아이템과 서브아이템 둘다 동적으로 생성 및 삭제 가능합니다. 단 서브 아이템은 메인 아이템 속의 아이템이니 메인아이템이 존재해야만 존재하겠죠.
사실 예전에도 비슷한것을 질문드렸던것 같긴한데 다시 하려니 헷갈려서 질문드립니다.
만약에 중첩 리사이클러뷰를 사용하게 되어 메인 어댑터내에 서브 아이템을 위한 서브어댑터를
사용해야한다면,
이 서브 어댑터는 onCreateViewHolder() onBindViewHolder()중 어디서 setAdapter()를 해야하나요?
리사이클러뷰에서 setAdapter()는 최초 1회만 진행해 주는것이라 들었습니다.
예제 샘플을 찾아봐도 비슷한 예제 모두 onBindViewHolder에서 서브리스트를 setAdapter 해주던데.
이유를 잘 모르겠습니다.
onBindViewHolder는 리사이클러뷰 특성상 스크롤이 길어지거나하게되면
ViewHolder를 재활용하게 될때 호출됩니다..
그럼 onBindViewHolder()에서는 또 setAdapter()하겠죠.
매번 이런식으로 setAdapter가 호출이 될텐데. 최초 1회만 호출해주는 것이 좋다는 것과는
영 반대인 상황이 나오게됩니다. 이것이 지극히 정상적인 상황인가요?
onCreateViewHolder에서 메인 리스트의 ViewHolder를 생성할때 같이 서브리스트를 setAdapter() 하면
안되는건가요?
어차피 저는 동적으로 아이템을 생성하는 상황이라, 메인 아이템을 생성할 때마다
onCreateViewHolder가 호출될것같은데, 여기다가 setAdapter를 하면 안되는 것인지 궁금합니다.
++) 번외로 위에 질문 다해놓고 이런 질문하는것이 이상하지만.. 원래 이런 중첩 리사이클러뷰를할때
메인 리스트의 각각의 아이템에 대해서 어댑터를 가지는것이어야하나요?