我正在考虑在我的项目中添加过度滚动(而不是颜色变化),但即使在阅读了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,false);
现在滚动根本不起作用! fling()在替换时可以正常工作但不能滚动….
总之,我有两个问题:
>为什么滚动不能使用overScrollBy?我是否必须添加其他代码才能使其正常工作?
>为什么我必须调用mScroller.fling()并且只调用overScrollBy()?为什么不mScroller.overScrollBy()?它是以某种方式构建到View类中的吗?
这可能是非常明显的,但我在这里挣扎.任何帮助将非常感谢,谢谢!
解决方法
也许是因为这个?
public class ViewConfiguration{ ... /** * Max distance in dips to overscroll for edge effects */ private static final int OVERSCROLL_DISTANCE = 0; ... }