【发布时间】:2013-09-12 15:51:50
【问题描述】:
我正在考虑在我的项目中添加过度滚动(不是颜色变化),但即使在阅读了 API 文档和这里的几个问题之后,我仍然不明白我需要做什么才能让它工作。
根据 OverScroller 的 API 文档:“这个类封装了滚动,能够超越滚动操作的边界。在大多数情况下,这个类是 Scroller 的替代品。”
我之前在父类中有一个 Scroller 对象:
public boolean onTouchEvent(MotionEvent ev) {
....// code to calculate deltas
if (deltaY != 0 || deltaX != 0)
scrollBy(deltaX, deltaY);
}
然后我把它改成这样:
if (deltaY != 0 || deltaX != 0)
overScrollBy(deltaX, deltaY, getScrollX(), getScrollY(),
child.getRight() - getWidth(), child.getBottom() - getHeight(),
OVERSCROLL_DISTANCE, OVERSCROLL_DISTANCE, false);
现在滚动根本不起作用! fling() 可以作为替代品使用,但不能滚动......
总的来说,我有两个问题:
- 为什么滚动不适用于
overScrollBy?我是否必须添加额外的代码才能完成这项工作? - 为什么我必须打电话给
mScroller.fling(),而只打电话给overScrollBy()?为什么不mScroller.overScrollBy()?它是否以某种方式内置于View类中?
这可能很明显,但我在这里挣扎。任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: android android-scrollview android-scroll android-overscoll