0

这是我想要实现的:我组装了一个本地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() > 0,滚动就可以了。

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

小伙伴们请稍等~

4

1 回答 1

0

Do something like this :

view.post(new Runnable() {
    public void run() {
        view.scrollTo(last_X, last_Y);
    }
});
于 2013-01-30T08:47:45.243 回答