2017-10-18 3 views
0

내 안드로이드 앱에서 recyclerView를 사용하고 120 개 항목으로 목록을 채 웠습니다. 내 문제는 recyclerView를로드하는 데 몇 시간이 걸린다는 점입니다. setAdapter() 방법이 매우 느린 것 같습니다. 문제를 해결하려면 어떻게해야합니까?recyclerView setAdapter가 매우 느림

list.addAll(db.getKarevanMembers()); 
KarevanMembersAdapter adapter = new KarevanMembersAdapter(list); 
binding.membersLayout.karevanMembersList.setAdapter(adapter); 
+0

어댑터 및 ViewHolder 코드를 보는 것이 좋습니다. 또한 Android 프로필러는 가치있는 방법을 식별하는 데 도움을줍니다. –

+0

KarevanMembersAdapter 어댑터 –

답변

1

현재 어댑터의 새 어댑터 변경 데이터를 설정하는 대신 adapter.notifyDataSetChanged()을 호출하십시오.

목록의 일부 요소 만 변경하거나 제거하려면 notifyItemInserted, notifyItemRangeInserted, notifyItemChanged, notifyItemRangeChanged, notifyItemRangeRemoved, notifyItemRemoved 메서드를 사용하여 어댑터를 업데이트하십시오 (https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html 참조).

+0

코드를 게시하십시오.이 기능을 사용해보십시오. 작동하지 않습니다. 로딩 목록은 여전히 ​​너무 느립니다. –

+0

저는 정말로 누가 누구를 얻지 못하고 왜이 대답에 투표했습니다. 런타임시 RV에 대한 데이터 변경에 대한 각 질문은 이러한 방식으로 수행됩니다. – Thracian

+0

너무 느리다면'onBindViewHolder' 메소드에 무거운 코드가있을 것입니다. –