如何在Android 2.3(姜饼)中实现类似iPhone的超出滚动效果?

7
在原始的Gingerbread版本中,超出滚动范围时会显示橙色“闪光”。然而,发布说明和一些API文档似乎表明支持iPhone风格的overshoot overscroll行为。例如,请参见此处。但是,如何让这些方法起作用并不清楚。仅仅使用这些方法设置可绘制对象并不能改变其行为。是否有人知道如何做到这一点?
2个回答

8

在 Android 版本小于 2.3 中有没有实现这个的方法? - rOrlig
在这个实现中,当ListView被过度滚动并且您继续触摸它时,它会反弹回来而不是取消触摸,我想避免这种情况。您有任何关于如何解决这个问题的想法吗? - dimlah
准确地说,每一次更新都会使 ScrollView 返回到原始位置,无论它是否已经超过滚动范围。 - Fenix Voltres
你如何将此添加到listView中,并且具有ImageView缩放的效果,就像这个库中一样:https://github.com/ideaismobile/AKParallax-Android(示例:https://play.google.com/store/apps/details?id=com.appkraft.parallax_sample)? - android developer

1

我没有亲身经历,但在 AbsListView 下,有一个叫做 setOverScrollMode() 的方法可能会有所帮助。除此之外,我还发现了 OverScroller 类。这似乎更符合你的需求;至于实现细节,我无法提供太多帮助。


感谢您的评论。我已经查看了那些方法,但它们并没有帮助。"overScrollMode"默认是开启的,所以该方法只允许将其关闭。关闭它只是防止橙色闪烁出现。OverScroller类似乎负责管理超滚动行为的通知,但不负责任何渲染工作。 - pents90
进一步研究后,我几乎可以确定OverScroller处理了超出滚动的实际机制。我刚意识到的缺点是它仅适用于Android 2.3+(姜饼)。它已添加到ScrollView类中,您可以在此处查看一些提交记录:http://android.git.kernel.org/?p=platform/frameworks/base.git;a=history;f=core/java/android/widget/ScrollView.java - Kevin Coppock
如果您有兴趣,这里是实际的OverScroll代码。向下滚动到MagneticOverScroller类以查看其背后的数学原理。(我错了,它们将其作为一个单独的类从ScrollView中移除了,看起来是这样) - Kevin Coppock

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