2010-10-17 67 views
2

我使用loadData()后跟一个reload()更新webView中的html。我得到要显示的新数据,但页面的滚动没有更新。我希望将页面的视图保留在底部。我可以等很长时间,但它仍然不会更新。一旦我点击webView滚动条调整,我可以拖动到页面的底部,看到新的文字。webview loaddata滚动设置不会更新,直到点击

我试过的东西: - onPageFinished()中的多个设置和调用。没有工作,因为getContentHeight()尚未更改。我也尝试scrollTo(100 + getContentHeight),这是行不通的。 - 下页(真)

  • 调用重装后requestLayout()()

  • browser.requestFocusFromTouch() - 仍然没有好,想我可以模仿我的点击。

  • 添加几个br标签。这工作了一下,但br的数量必须等于新文本的行数。由于新行的数量并不能根据方向和屏幕变量准确确定,因此这不是一个很好的解决方案。 任何想法? TIA

回答

4

如果你想它加载完成后的web视图滚动以底部,我发现我已经在onNewPicture使用PageDown键(真)。 (我相信这是当一个视图完成绘制触发事件。)

因此,代码看起来像

webView.setPictureListener(new WebView.PictureListener() { 

     public void onNewPicture(WebView view, Picture picture) { 
      webView.pageDown(true); 
     } 
    } 

使用PageDown键有明显的滚动页面的不幸的问题;我有问题找到其他方式跳转到webView的底部,找到这个问题,同时寻找解决方案! (虽然我还没有尝试在WebView内部使用JavaScript,但是。)

+0

我必须有另一个小故障。我在pageDown期间看到页面闪烁(Yeh!以前从未得到过),但它已经到了页面的原始页面。 contentHeight没有得到更新,所以它会到页面的虚假结尾。 Sheeesh! – Jim 2010-10-21 10:27:30

+0

我将此标记为已回答,因为pageDown(true)正在触发我。我问了另一个关于如何让contentHeight重新计算的问题。 – Jim 2010-10-21 19:41:35