2017-10-18 33 views
0

私はandroidアプリでrecyclerViewを使用し、120個の項目を含むリストで埋めました。私の問題は、recyclerViewをロードするのに数時間かかることです。それはsetAdapter()メソッドが非常に遅いようです。それを修正するために私は何ができますか?recyclerView setAdapterが非常に遅い

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

アダプタとViewHolderコードを見る方が良いです。また、Android Profilerを使用すると、価値ある方法を特定するのに役立ちます。 –

+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'メソッドに重いコードがあります。 –