【发布时间】:2012-11-07 21:12:20
【问题描述】:
我正在尝试以编程方式滚动 webview,但遇到了一些问题。 webView.setScrollY() 没有给我动画 webView.flingScroll() 似乎表现不同,具体取决于页面的长度。最好的方法是什么?
【问题讨论】:
标签: android webview scroll smooth-scrolling
我正在尝试以编程方式滚动 webview,但遇到了一些问题。 webView.setScrollY() 没有给我动画 webView.flingScroll() 似乎表现不同,具体取决于页面的长度。最好的方法是什么?
【问题讨论】:
标签: android webview scroll smooth-scrolling
您可以使用 ObjectAnimator 滚动,方法是提供 webview 的当前位置,如 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();
对我有用~,你可以试试这个~
【讨论】: