10

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

4

3 回答 3

14

您可以通过提供 webview 的当前位置来使用ObjectAnimator滚动,如 API 11+

ObjectAnimator anim = ObjectAnimator.ofInt(webView, "scrollY", webView.getScrollPositionY(), 0);
anim.setDuration(500).start();
于 2016-06-22T08:30:58.560 回答
1

您可以使用 webView.scrollTo(x, y) 方法。但是,这将立即滚动。

WebView 没有可用的方法来滚动动画。如果你真的必须这样做,将 WebView 放入 ScrollView 然后你可以使用例如 smoothScrollBy 等。

于 2013-05-30T09:15:51.933 回答
1
 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();

对我有用~,你可以试试这个~

于 2018-07-26T02:08:27.943 回答