2011-04-07 96 views
3

我的Android應用程序中有一個ListView。列表中的單個視圖比屏幕大小要小一些。需要幫助動畫Android ListView

我希望列表始終顯示屏幕上居中顯示的一個項目,只顯示上面和下面顯示的上一個和下一個項目的小條。

當用戶滾動時,我需要重新定位位置0或1處的子視圖(取決於它們滾動的方式)。目前我通過在我的onScrollStateChanged方法中調用「setSelectionFromTop」來完成此操作。這有效,但過渡是直接的,不光滑。這在很多情況下都是令人震驚和困惑的。

解決此問題的最佳方法是什麼?我想動畫滾動列表到我想要的位置的過程,但我無法在ListView或其超類中找到任何方法讓我直接控制整個列表的滾動位置。

我想我可以使用y的漸進值對setSelectionFromTop(int position,int y)進行多次調用來設置它的動畫效果,但是我不知道如何確定y的初始值。有沒有辦法通過在指定位置詢問視圖對象來獲得該方法?

我面前的另一個挑戰是我想要從列表中刪除一個項目 - 通過讓它消失或向左滑動,然後讓周圍的視圖上下移動填滿空間。有沒有一個簡單和可靠的方式來做到這一點與ListView?我應該放棄ListView並將整個事情從頭開始編寫爲自定義視圖?

謝謝。

回答

0

這絕對應該是可能的。 smoothScrollToPosition()是否工作?

否則,您可以嘗試使用TouchUtils來模擬觸摸。