Android: 如何检测ScrollView何时完成滚动并回弹?

7
我有一个ScrollView,其中有两个隐藏的图片,一个在顶部,一个在底部。中间有一堆可见内容。
我需要做的是默认隐藏这些图片,但当您向上或向下滚动时,您可以在滚动时看到它们。但是,当您停止滚动时,它应该反弹回可见区域,以便不显示隐藏的图像。
基本上,我正在尝试模仿iPhone UIScrollView的反弹滚动功能。
我已经设置好了我的ScrollView,并在开始时进行了滚动,以隐藏顶部的隐藏图像。现在我需要做的就是检测滚动何时结束,找出Y位置,并检查是否显示了隐藏的图像。如果是,我只需以编程方式将视图滚动回来,以便隐藏隐藏的图像。
希望以上所有内容都讲得清楚明白。
总之,我知道如何以编程方式滚动ScrollView。现在我需要的是某种回调来告诉我ScrollView何时结束滚动,以及获取ScrollView当前的“Y”位置的方法。有没有这样的方法可用?
我查看了ScrollView文档,但没有什么引起我的注意。我还不太熟悉Android命名方案,所以也许我错过了一些明显的东西。
无论如何,任何帮助都将不胜感激。干杯。
1个回答

5
您可以使用OnTouchListener来检测用户何时按下/释放列表。
您还可以使用OnScrollListener类的onScrollStateChanged方法(很可能与触摸侦听器一起使用)来检测SCROLL_STATE的更改-当列表停止滚动时,状态将从一个不是SCROLL_STATE_IDLE的状态更改为SCROLL_STATE_IDLE
或者,如果您正在使用2.3或更高版本,则可以使用OverScroller来获得所需的效果(请参见修改Android OverScroll以将过度滚动效果更改为类似于iPhone的效果)。

13
ScrollView 没有 OnScrollListener。 - Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接