2015-08-03 51 views
4

工作正常,我使用RecyclerView notifyItemInserted()動畫時位置爲0,但與其他位置

data.add(0,item); 
notifyItemInserted(0); 

這工作得很好,只要項目空間沒有填滿。之後,動畫不見了。當我這樣做

data.add(1,item); 
notifyItemInserted(1); 

如何添加項目在0位置,並顯示動畫所有的時間

動畫作品的罰款。我必須使用scrollToPosition嗎?

+1

可以請你用notifydatasetchange()方法insted的notifyItemInserted的(0);我是它會工作 –

+0

@bhaveshkaila,notifydatasetchange()顯然可以工作,但殺死動畫。其實,我需要顯示動畫 – touchchandra

回答

5

通話scrollToPosition(0)如果你wan't它滾動到位置0是增加了新的項目之後。 RecyclerView只會保留當前的頂級項目,這就是爲什麼你沒有看到新項目。 (新項目被添加到可見區域之上)。

+0

我已經使用scrollToPosition(O)嘗試,但動畫是非常weird.Say,如果我滾動到50左右的位置,並添加元素的第一位置的動畫來顯示新的第一個項目是很奇怪的。我試過smootnScrollToPosition(0)。你有任何解決方法? – touchchandra

+0

當用戶已經在位置50時,您是否真的希望列表滾動到位置0?對我來說這似乎是一個糟糕的用戶體驗。在這種情況下,最好使用'smoothScrollToPosition'。 – yigit