2012-07-12 96 views
3

如何在listview中添加新項目或將項目從一個位置移動到另一個位置?我想製作動畫效果,就像在這個應用程序中:any.do(youtube)。我正在使用從ResourceCursorAdapter擴展的適配器。我應該如何使用newView和bindView函數來實現這種效果?還是有另一種方式來做到這一點,比如擴展ListView類?我懷疑any.do應用程序中有一個ScrollView而不是Listview。但是我認爲這是錯誤的方式,如果你在列表中有很多項目。有任何想法嗎?動畫添加列表視圖中的項目和項目移動

回答

5

要做到這一點,您需要: 1.「關閉」項目曾經是的位置。 2.「打開」列表中的一個插槽,其中項目將「着陸」。 3.在插槽之間移動項目。

要實現第一個動畫,您需要動畫列表項目視圖本身。爲了使其消失,您可以爲其底部邊距的值設置動畫。我寫了一篇關於我在Any.DO中做過的其他動畫的博客文章,在這裏我爲此值設置了動畫 - http://udinic.wordpress.com/2011/09/03/expanding-listview-items/。您可以使用相同的動畫來動畫列表項的視圖。

「開放式」動畫與結尾相同,但方向相反。您將列表項目放置在「着陸點」之前,並向外移動其底部邊緣,爲新項目騰出空間。

在位置之間移動項目相當容易。您需要充氣用相同的佈局列表項的視圖,與當前項目的數據填充它,將它添加到窗口管理器:

WindowManager winManager = (WindowManager) Context.getSystemService(Context.WINDOW_SERVICE); 
winManager.addView(..) 

和動畫它的座標使用:

winManager.updateViewLayout(..); 

動畫完成後 - 您可以刪除此視圖並刷新列表。

添加項目動畫是使用相同的概念完成的。

對不起,我沒有完整的供應商在這裏提供。在我的博客文章中,您可以找到展開/關閉動畫的代碼。

希望這會有所幫助!

+0

謝謝,我會嘗試你所說的一切。 – jumper0k 2012-07-30 13:22:22

相關問題