Android WebView顺畅滚动

时间:2012-11-19 21:17:49

标签: android webview scroll smooth-scrolling

我正在尝试以编程方式滚动webview,但我遇到了一些问题。 webView.setScrollY()没有给我一个动画,webView.flingScroll()似乎表现不同,具体取决于页面的长度。这样做的最佳方式是什么?

3 个答案:

答案 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();

这对我有用〜,您可以尝试一下〜