Android WebView 平滑滚动
Posted
技术标签:
【中文标题】Android WebView 平滑滚动【英文标题】:Android WebView smooth scroll 【发布时间】:2012-11-07 21:12:20 【问题描述】:我正在尝试以编程方式滚动 webview,但遇到了一些问题。 webView.setScrollY() 没有给我动画 webView.flingScroll() 似乎表现不同,具体取决于页面的长度。最好的方法是什么?
【问题讨论】:
【参考方案1】:您可以使用 ObjectAnimator 滚动,方法是提供 webview 的当前位置,如 API 11+
ObjectAnimator anim = ObjectAnimator.ofInt(webView, "scrollY", webView.getScrollPositionY(), 0);
anim.setDuration(500).start();
【讨论】:
很好的答案,对我有用。唯一的问题是没有像getScrollPositionY()这样的方法,你应该使用webView.getScrollY()【参考方案2】:您可以使用 webView.scrollTo(x, y) 方法。但是,这将立即滚动。
WebView 没有可用的方法来滚动动画。如果您确实必须这样做,请将 WebView 放入 ScrollView 然后您可以使用例如smoothScrollBy 等。
【讨论】:
嵌套可滚动视图不是最好的主意,如果处理不当会给您带来各种麻烦【参考方案3】: 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();
对我有用~,你可以试试这个~
【讨论】:
以上是关于Android WebView 平滑滚动的主要内容,如果未能解决你的问题,请参考以下文章