【发布时间】:2015-11-21 02:13:11
【问题描述】:
我试图在滚动达到最大值后拉动 webView “反弹”(有点像“拉动刷新”效果)。
我的自定义视图扩展了 WebView,并覆盖了方法
@Override
protected boolean overScrollBy(final int deltaX, final int deltaY, final int scrollX, final int scrollY, final int scrollRangeX, final int scrollRangeY, final int maxOverScrollX, final int maxOverScrollY, final boolean isTouchEvent)
{
VerticalOverScrollController.Result result = overscrollController.calcVerticalOverScroll(deltaY, scrollY);
Log.d("overScrollBy", "scrollY " + result.scrollY + " overScrollY " + result.overScrollY);
return super.overScrollBy(deltaX, deltaY, scrollX, result.getScrollY(), scrollRangeX, scrollRangeY, maxOverScrollX, result.getOverScrollY(), isTouchEvent);
}
而 calcVerticalOverScroll 是
public Result calcVerticalOverScroll(final int deltaY, final int scrollY)
{
Result result = new Result();
if (scrollY <= 0 && deltaY < 0)//if at top and pulling down...
{
result.scrollY = (maxTopOverScroll > 0) ? scrollY : 0;
result.overScrollY = maxTopOverScroll;
} else
{
result.scrollY = (maxBottomOverScroll > 0) ? scrollY : 0;
result.overScrollY = maxBottomOverScroll;
}
return result;
}
结果只是
public static class Result
{
int scrollY;
int overScrollY;
... getters()
}
问题是,这在 any 视图(包括 webview)在 KitKat 之前完美运行。。 p>
在 KitKat 之后,这在 WebView 之外的任何视图上都可以完美运行,其中 scrollY 的日志始终为 0。
关于这个版本的 WebView 有什么改变有什么想法吗?
如果这不成功,关于如何在 WebView 上正确实现 overScroll 效果的任何想法?
提前致谢。
【问题讨论】:
标签: android webview overscroll