安卓网络视图平滑滚动



我正在尝试以编程方式滚动网络视图,但我遇到了一些问题。 webView.setScrollY() 没有给我一个动画 webView.flingScroll() 的行为似乎根据页面的长度而有所不同。最好的方法是什么?

您可以使用 ObjectAnimator 通过提供 Web 视图的当前位置来滚动,如下所示 API 11+

ObjectAnimator anim = ObjectAnimator.ofInt(webView, "scrollY", webView.getScrollPositionY(), 0);
anim.setDuration(500).start();

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

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

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

这对我来说很辛苦~,你可以试试这个~

最新更新