如何在页面加载完成后滚动webview

时间:2013-01-30 03:30:03

标签: android android-layout scroll android-webview runnable

这就是我想要实现的目标:我在其中组装了一个带有一些标签和互联网资源的本地html页面,然后使用WebView加载html页面网页,并且在结尾处有一个“查看更多”按钮页面,当有人点击按钮时,我将重新组装html页面(使用旧数据和新数据,例如刷新twitter以加载更多twits)并让WebView再次加载它。但是当用户点击按钮时滚动到某个位置,所以我想让WebView滚动到用户点击按钮之前的位置。

现在,我创建一个WebViewClient并实现:

public void onPageFinished(WebView view, String url) {
    view.scrollTo(last_X, last_Y);
}

它没有像我期望的那样工作,我有两个问题,伙计们请帮助我: 1.这个回调函数不能一直工作。在大多数情况下,它有效,但有时,由于未知的原因,它只是不起作用。 2.即使它有效,它也不是我想要的。正如我所提到的,html页面包含一些互联网资源,如

<a href='whateversite/whateverimage'><img src='whateversite/whateverimage'></img></a>

因此只有在加载所有图像时才调用scrollTo函数,它需要花费太多时间而且没有必要,有没有办法在加载页面时但在加载所有其他资源之前开始滚动?每说,只要webview.getContentHeight()&gt; 0,滚动就可以了。

为我糟糕的英语道歉,我将不得不使用大量的文字来试图让自己清楚。

伙计们,请停下来〜

1 个答案:

答案 0 :(得分:0)

做这样的事情:

view.post(new Runnable() {
    public void run() {
        view.scrollTo(last_X, last_Y);
    }
});