-
카테고리
-
해결 여부
미해결
알려주신데로 2차원 recycler뷰를 이용해 구현했는데.. 또 다른 문제가 생기네요 ㅎㅎ;
18.06.23 06:25 작성 조회수 233
0
리사이클러뷰안에다가 또다른 리사이클러뷰를 만들었더니....
스크롤 문제는 완벽하게 해결됬습니다....;; 디자인상으로도 완벽하게 동작하게 되었습니다.^^ㅎ
그런데 여기서 또 다른 문제가(심각한?) 발생합니다....
이유인즉, 2차로 출력되는 recyclerview가 onBindViewHolder을 통해서
출력이 될때에 한꺼번에 데이터를 다 가져와 버리는 문제가 발생합니다.
(데이터가 200개이면 200개가 한번에 다 출력되버립니다;ㅋㅋㅋ)
아마도... 메인 리사이클러뷰 안에 리사이클러뷰가 들어가는것이라....
메인 리사이클러뷰의 첫번재 요소에 리사이클러뷰가 있으니....
전체를 그냥 다 읽어 들인것 같습니다....;;
이부분은 서브어댑터의 onBindViewHolder 에서
Log.e("상품명",data[position].it_name)
로그를 출력하여서..... 확인하였습니당;;
혹시...사실상 메인 recycler는 레이아웃 용도인데..;;
서브로 만들어 놓은 recycler가 데이터를 스크롤 할때마다 불러오는게 아니라
메인 recycler뷰의 영향으로 전체를 한꺼번에 다 불러와서...문제네요 ㅠ;
몬가 서브로 들어간 어댑터에 대한 설정이 있는걸까요?
이부분 관련하여서 조언 구할수 있을까요?ㅠㅠ;
=======================================================================
참고로
메인리사이클러뷰에서 1차로 레이아웃을 생성하는 어댑터에서 읽어 들일때
onBindViewHolder 부분에서 디자인 레이아웃을
holder.itemViewType 을 분기해서 어댑터를 설정해줬습니당
if (holder.itemViewType === 3) { var view = holder as ItemViewHolder
view.recyclerView!!.adapter = ItemAdapter(MainActivity().getItemData())
view.recyclerView!!.layoutManager = LinearLayoutManager(context)
}
그리고 onCreateViewHolder 에서도 마찬가지로 viewType을 분기하여서 다음과 설정하였습니다.
view = inflater.inflate(R.layout.item_list, parent, false)
holder = ItemViewHolder(view)
class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var recyclerView : RecyclerView? = null
init {
recyclerView = view.findViewById(R.id.inner_recyclerView3) as RecyclerView
}
}
답변을 작성해보세요.
0
배움배움배움
질문자2018.06.23
게시글이 너무 길어져서.. 아래 링크로 문의드렸습니다 ㅠ;
https://www.inflearn.com/dwquestion/리사이클러뷰를-2차로-구현시-문제점입니다-ㅠㅠ/
0
답변 2