代码之家  ›  专栏  ›  技术社区  ›  Jim

webviewclient中的onpagefinished似乎无法正确启动

  •  3
  • Jim  · 技术社区  · 15 年前

    我见过另外一个,所以这个问题没有解决。

    我将loadData()用于应用程序生成的HTML。

    我注意到,当我在新文本后添加几行空白时,页面会滚动,文本需要一些时间才能神奇地显示出来(没有滚动,只是显示为淡入)。

    watching.getContentHeight()不会在onPageFinshed()事件中更新,但会在页面上随后添加文本时更新。

    我创建了一个计时器事件来观看GETCraceTeTHEE。即使在我发现getcontentheight已经更改并发出browser.pagedown(true)之后,页面仍然滚动到底部。

    当第一次进入活动时,工作似乎很好。我的问题只发生在我在newinnerHTML中附加了几行。

    此外,所涉及的视图有一个页眉和页脚,浏览器位于中间。webview不在页脚后面。

    这是虫子,还是我遗漏了什么?

    蒂亚 吉姆

    此代码位于活动的oncreate中。

            final WebView browser = (WebView) findViewById(R.id.webview);
            browser.setWebViewClient(new WebViewClient() {  
                @Override  
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(browser, url);
                  //  browser.computeScroll();  //didn't help
                    Log.d(TAG,"page getContentHeight: " + browser.getContentHeight());
                    Log.d(TAG,"page finished");
                    browser.pageDown(true);
                }  
            });
    

    此方法在活动的oncreate之后

    私有void updateMessageDisplay(){

         //loadData fires onPageFinished but without the new data
         browser.loadData("<html><body>" + newInnerHTML + "</body></html>", "text/html", "utf-8");
         //reload() again fires onPageFinished but this time with new data
         browser.reload();
    
    }
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    我在这里收到了一个部分的答案,这确实让pagedown(true)着火了。

    webview loaddata scroll setting not updating till clicked

    还有一些问题。