我正在尝试以编程方式滚动webview,但我遇到了一些问题。 webView.setScrollY()没有给我一个动画,webView.flingScroll()似乎表现不同,具体取决于页面的长度。这样做的最佳方式是什么?
答案 0 :(得分:12)
您可以通过提供webview的当前位置(例如此API 11 +
),使用ObjectAnimator进行滚动ObjectAnimator anim = ObjectAnimator.ofInt(webView, "scrollY", webView.getScrollPositionY(), 0);
anim.setDuration(500).start();
答案 1 :(得分:1)
您可以使用webView.scrollTo(x,y)方法。但是,这将立即滚动。
没有可用于WebView滚动动画的方法。如果您真的必须这样做,请将WebView放入ScrollView,然后您可以使用例如smoothScrollBy等。
答案 2 :(得分:0)
private final Property<WebView, Integer> WEBVIEW_SCROLL = new Property<WebView, Integer>(Integer.class, "") {
@Override
public Integer get(WebView object) {
return object.getScrollY();
}
@Override
public void set(WebView object, Integer value) {
object.scrollTo(object.getScrollX(), value);
}
};
ObjectAnimator.ofInt(mWebView, WEBVIEW_SCROLL, targetY).setDuration(duration).start();
这对我有用〜,您可以尝试一下〜