【发布时间】:2015-03-13 19:18:49
【问题描述】:
我想在 Android ListView 上实现“捕捉”效果。具体来说,当 ListView 停止滚动时,我希望它停止在某些位置,以便完全显示第一个可见项目。为此,我需要能够估计当用户停止拖动或甩动时 ListView 将停止的最终位置。
在拖动的情况下,当我们收到 ACTION_UP 或 ACTION_CANCEL 事件时,我可以简单地读取当前的 Y 偏移作为最终位置。
然而,在投掷的情况下,当我们收到 ACTION_UP 或 ACTION_CANCEL 事件时,我需要一些额外的信息来确定 ListView 由于减速期而停止滚动的最终位置。
iOS 通过 willEndDragging 中的 targetContentOffset 参数提供此类信息。 Android 中是否有任何等效信息可用?
这与我提出的另一个问题有关,但没有得到回应:In Android, how to achieve snap effect on a listview while respecting acceleration caused by fling?
【问题讨论】:
-
我不确定您要的是什么。你想计算一个 Listview 可以容纳的行数吗?或者,你喜欢计算 Listview 的高度吗?
-
@TheOriginalAndroid 我已经更新了问题。基本上,在fling的情况下,当我们收到ACTION_UP或ACTION_CANCEL事件时,我需要一些额外的信息来确定ListView会因为减速期而停止滚动的最终位置。
-
我使用代码查看了您的其他帖子。只是作为吸引更多关注这篇文章的建议,我认为你的标题不适合这个问题,像我这样的一些人认为它与 iOS 问题有关,我对此一无所知。
-
@TheOriginalAndroid 感谢您的提示!我编辑了标题,但如果您有更好的建议,请告诉我。
标签: android listview android-listview