2017-10-18 207 views
0

我在我的android應用程序中使用recyclerView,並用一個包含120個項目的列表填充它。我的問題是,它需要一些時間來加載recyclerView。看來setAdapter()方法很慢。我能做些什麼來解決它?recyclerView setAdapter非常慢

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

更好地看到Adapter和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

我真的不明白誰和爲什麼down投這個答案。關於在運行時更改RV數據的每個問題都是這樣完成的。 – Thracian

+0

如果速度太慢,那麼你可能在'onBindViewHolder'方法中有大量代碼。 –