2011-04-07 97 views
3

我的Android应用程序中有一个ListView。列表中的单个视图比屏幕大小要小一些。需要帮助动画Android ListView

我希望列表始终显示屏幕上居中显示的一个项目,只显示上面和下面显示的上一个和下一个项目的小条。

当用户滚动时,我需要重新定位位置0或1处的子视图(取决于它们滚动的方式)。目前我通过在我的onScrollStateChanged方法中调用“setSelectionFromTop”来完成此操作。这有效,但过渡是直接的,不光滑。这在很多情况下都是令人震惊和困惑的。

解决此问题的最佳方法是什么?我想动画滚动列表到我想要的位置的过程,但我无法在ListView或其超类中找到任何方法让我直接控制整个列表的滚动位置。

我想我可以使用y的渐进值对setSelectionFromTop(int position,int y)进行多次调用来设置它的动画效果,但是我不知道如何确定y的初始值。有没有办法通过在指定位置询问视图对象来获得该方法?

我面前的另一个挑战是我想要从列表中删除一个项目 - 通过让它消失或向左滑动,然后让周围的视图上下移动填满空间。有没有一个简单和可靠的方式来做到这一点与ListView?我应该放弃ListView并将整个事情从头开始编写为自定义视图?

谢谢。

回答

0

这绝对应该是可能的。 smoothScrollToPosition()是否工作?

否则,您可以尝试使用TouchUtils来模拟触摸。