【问题标题】:Android WebView smooth scrollAndroid WebView 平滑滚动
【发布时间】:2012-11-07 21:12:20
【问题描述】:

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

【问题讨论】:

    标签: android webview scroll smooth-scrolling


    【解决方案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();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多