我正在考虑在我的项目中添加过度滚动(不是颜色变化),但即使在阅读了 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
课堂中?
这可能很明显,但我在这里挣扎。任何帮助将不胜感激,谢谢!