2017-02-21 1190 views
4

我目前有一個回收者視圖,其數據每5秒更新一次。要更新列表中的數據,我使用如何防止RecyclerView項目在notifyItemChanged(pos)後閃爍?

notifyItemChanged(position); 
notifyItemRangeChanged(position, mList.size()); 

每次我打電話notifyItemChanged(),我回收視圖更新項目正常,但是,它會閃爍,因爲這會導致onBindViewHolder再次調用。所以它就好像每次都是新鮮的負載。如果可能,我怎樣才能防止這種情況發生?

回答

7

RecyclerView內置動畫,通常會增加一個不錯的拋光效果。你的情況,你會希望將其禁用:

((SimpleItemAnimator) mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false); 

(默認回收視圖動畫應該已經是SimpleItemAnimator一個實例)

+0

是的!這正是我需要的。 – portfoliobuilder

+1

但我認爲這也會禁用方法的默認動畫,如notifyItemInserted – user6650650

+0

@ user6650650適合我。你也是對的。謝謝! – portfoliobuilder

3

您可以禁用項目的動畫。

mRecyclerView.setItemAnimator(null);