2015-06-24 63 views
3

當我在RecyclerView上撥打notifyItemChanged()時,相應的Views(在本例中爲按鈕)未按預期更新。我打電話給他們的原因是數據已經改變,這將導致他們的背景顏色改變。這是否意味着notifyItemChanged()不強制致電onBindViewHolder()是否notifyItemChanged()強制調用onBindViewHolder()?

我試過使用notifyDataSetChanged(),這會導致視圖重新加載,因爲我想,所以我知道我的實現是正確的。 (注意我不想使用notifyDataSetChanged(),因爲效率不高,我只用它作爲理智測試)。

+0

發佈您的代碼。 –

+0

發佈您的代碼,以便我們可以更好地爲您提供幫助 – Kartheek

+0

Yesss ...您的代碼....將其發佈給我們..... gollum gollum –

回答

1

刷新您的列表視圖註冊一個新的觀察者來監聽數據更改。 使用registerAdapterDataObserver

適配器可能發佈描述特定更改的各種事件。並非所有適配器都支持所有更改類型,並且如果更多特定數據不可用,某些適配器可能會回退到通用「更改內容」事件。

使用適配器註冊觀察者的組件負責在完成時註銷這些觀察者。

+0

目前尚不清楚如何使用此功能,也就是說,因爲這是整個觀察者適配器還沒有指定單個位置的函數(onChange()指定none並且onItemRangeChanged(positionStart,itemCount)指定範圍) –

相關問題