Android 如何在页面加载完成后滚动Web视图

Android 如何在页面加载完成后滚动Web视图,android,android-layout,scroll,android-webview,runnable,Android,Android Layout,Scroll,Android Webview,Runnable,以下是我试图实现的目标:我组装一个本地html页面,其中包含一些标记和internet资源,然后使用WebView加载html页面,页面末尾有一个“查看更多”按钮,当有人单击该按钮时,我将重新组装html页面(使用旧数据和新数据,比如刷新推特以加载更多推特)并让WebView再次加载。但是由于用户在单击按钮时已滚动到某个位置,因此我希望让WebView滚动到用户单击按钮之前的位置 现在我要做的是创建一个WebViewClient并实现: public void onPageFinished(We

以下是我试图实现的目标:我组装一个本地html页面,其中包含一些标记和internet资源,然后使用WebView加载html页面,页面末尾有一个“查看更多”按钮,当有人单击该按钮时,我将重新组装html页面(使用旧数据和新数据,比如刷新推特以加载更多推特)并让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,就可以滚动

为我糟糕的英语道歉,我将不得不用大量的单词来表达我的意思


伙计们,请停下来~

这样做:

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

WebViewClient有一个回调onLoadResource()正如这里所解释的。你试过了吗?@Chris已经读过,但还没有试过。根据描述,每次加载某个资源时都会调用此函数,这意味着如果页面中有100个图像,则会调用100次,我担心如果我的页面中有太多资源,这可能会导致性能问题他打开了页面。但是我想试试看它是否有效。谢谢。是的,但这也意味着你可以检测文本内容何时完成加载。只是想一想。但是应该有另一种优雅的方式来完成。