加载后立即滚动HTML文件

时间:2013-12-29 07:49:06

标签: android html webview scroll

在我的应用中,我正在将本地HTML文件加载到webview。如果单击了某个按钮,我想加载一个本地HTML文件并使用y axis.

中的特定值滚动它

问题是命令:

webview.scrollTo(0, scrollY);
在HTML文件加载完成之前,

执行得太早,因此不会发生滚动。 我尝试使用Stackoverflow的很多答案(如thisthis),但问题始终是一样的。我可以在调试模式下看到在文件可见之前执行的scrollTo命令。

任何人都知道如何实现这种滚动?


在尝试了所有答案后,我发现只有以下内容真的有帮助: private final Handler mHandler = new Handler();

    // in onCreate
    mHandler.postDelayed(new Runnable() {

            @Override
            public void run() {
                if (mWebView.getContentHeight() > 0) {
                    mWebView.scrollTo(0, mLastPosition);
                    Log.d("scrolling", "true");
                    mHandler.removeCallbacks(this);
                } else {
                    mHandler.postDelayed(this, 100);
                }
            }
        }, 100);

此解决方案取自enter link description here

2 个答案:

答案 0 :(得分:0)

WebViewClient会帮助你。按如下方式扩展onPageFinished():

webview.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
       webview.scrollTo(0, scrollY);
    }
});

答案 1 :(得分:0)

fisrt set custom webview client like this
webview.setWebViewClient(new CustomWebViewClient());

然后在类

中添加以下代码
 private class CustomWebViewClient extends WebViewClient
{
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{
    // TODO Auto-generated method stub

        return false;
} 
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}

@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
  webview.scrollTo(0, scrollY);

}


}