Android overScrollBy不';不要总是在棒棒糖(5.x)平台上反弹

Android overScrollBy不';不要总是在棒棒糖(5.x)平台上反弹,android,android-scrollview,Android,Android Scrollview,基于以下帖子,我在ScrollView中重写了overScrollBy方法: 它在其他平台版本上运行良好,但如果将fling运动应用于滚动视图,棒棒糖将无法反弹 是否有人遇到此问题并找到了解决方法 在构造函数setOverScrollMode中调用(始终滚动) 这里是我在自定义ScrollView类中重写的相关代码: @Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,

基于以下帖子,我在
ScrollView
中重写了
overScrollBy
方法:

它在其他平台版本上运行良好,但如果将fling运动应用于
滚动视图
,棒棒糖将无法反弹

是否有人遇到此问题并找到了解决方法

在构造函数
setOverScrollMode中调用(始终滚动)

这里是我在自定义
ScrollView
类中重写的相关代码:

@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,
                               int scrollY, int scrollRangeX, int scrollRangeY,
                               int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
    return super.overScrollBy(deltaX, deltaY, scrollX, scrollY,
            scrollRangeX, scrollRangeY, maxOverScrollX, OVER_SCROLL_AMOUNT,
            isTouchEvent);
}

谢谢。

我挖掘了KitKat和棒棒糖之间的变化
ScrollView
。下面的代码解决了我的问题

@TargetApi(21)
@Override
public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) {
    // Not consumed means it wasn't handled because ScrollView
    // doesn't take over scrolling bounds into scroll range,
    // so we fling it ourselves to get it bounce back
    if (getOverScrollMode() == OVER_SCROLL_ALWAYS && !consumed) {
        fling((int) velocityY);

        return true;
    } else {
        return super.dispatchNestedFling(velocityX, velocityY, consumed);
    }
}

你能发布你当前的代码吗?它似乎在为我工作,你能详细说明出了什么问题,并发布一些代码吗?更新了相关代码,你可以正常滚动边界,然后应用fling运动,滚动视图就停止了。我发布了一个解决方案,以防止滚动被卡住。让我知道它是否有效。在棒棒糖5.1上对我不起作用。所以我只用这两行代码覆盖了这个函数:
fling((int)velocity);返回true。现在它开始工作了。