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代码>。现在它开始工作了。