需要帮助动画一个Android ListView



我有一个ListView在我的Android应用程序。列表中的单个视图比屏幕的大小略小。

我想要的列表总是显示一个项目在屏幕的中心,只有一小条的上一个和下一个项目显示在上面和下面。

当用户滚动时,我需要将子视图重新定位在位置0或1(取决于他们滚动的方式)。目前,我通过调用"setSelectionFromTop"在我的onScrollStateChanged方法做到这一点。这是有效的,但过渡是即时的,并不顺利。在很多情况下,这是不和谐的,令人困惑的。

解决这个问题的最好方法是什么?我想把列表滚动到我想要的位置的过程动画化,但是我在ListView或它的超类中找不到任何方法可以让我直接控制整个列表的滚动位置。

我想我可以动画它使用多个调用setSelectionFromTop(int position, int y)与y的渐进值,但我不知道如何确定y的初始值。是否有一些方法来通过询问视图对象在指定位置?

我面临的另一个挑战是,我想从列表中删除一个项目——通过让它消失或向左滑动,然后让周围的视图上下移动来填充空间。是否有一个直接和可靠的方法来做到这一点与ListView?我是否应该放弃ListView并从头开始编写整个自定义视图?

谢谢。

这绝对是可能的。smoothScrollToPosition()起作用吗?

否则,你可以尝试使用TouchUtils模拟触摸

相关内容

最新更新