0

我正在创建一个主要与列表视图一起使用的应用程序。用户可以将项目添加到列表视图,我想从当前位置滚动到列表底部。

我最初使用的是能够从当前位置向下滚动的 scrollBy(int x, int y)。然而,这是一个瞬间的动作。我希望它是一个平滑的滚动。

所以这正是我所做的。我使用了 smoothScrollBy(int distance, int duration) 但这似乎总是从顶部滚动,即使我在列表中设置了当前位置就在它之前。

我的问题是,我应该使用一些计时器来减慢方法 scrollBy 的速度,还是应该有一种方法来做 smoothScrollBy,从我们在列表中的当前位置开始?

我应该注意,当我指的是当前位置时,我存储了确切的像素位置,而不仅仅是 setSelection(int position)。

谢谢

4

1 回答 1

0

好的,我解决了问题。问题是在我的代码中的其他地方引起的。

它总是从最顶部滚动的原因是因为我在调用 smoothScrollBy() 后立即更新了当前列表位置。因此,它在滚动操作完成之前正在更新。我移动了我的方法调用,稍后在我的代码中更新列表位置,现在它工作正常。

于 2012-12-11T19:09:36.320 回答