webview loaddata滚动设置直到点击才更新

时间:2010-10-17 15:09:57

标签: android uiwebview

我使用loadData()后跟reload()更新webView中的html。我得到要显示的新数据,但页面滚动没有更新。我想保持页面底部的视图。我可以等很长时间,但仍然没有更新。单击webView后,滚动条会调整,我可以拖动到页面底部并查看新文本。

我尝试过的事情: - onPageFinished()中的多个设置和调用。没有用,因为getContentHeight()还没有改变。我也试过scrollTo(100 + getContentHeight),但这不起作用。 - pageDown(true)

  • 在reload()

  • 之后调用requestLayout()
  • browser.requestFocusFromTouch() - 仍然不好,以为我可以模拟我的点击。

  • 添加一些br标签。这有点工作,但br的数量必须等于新文本的行数。由于新线的数量不是可以根据方向和屏幕变量精确确定的,因此不是一个好的解决方案。 有任何想法吗? TIA

1 个答案:

答案 0 :(得分:5)

如果你想在完成加载后将webview滚动到底部,我发现我必须在onNewPicture中使用pageDown(true)。 (我相信这是在视图完成绘制时触发的事件。)

所以代码看起来像

   webView.setPictureListener( new WebView.PictureListener() {

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

使用pageDown有一个明显滚动页面的不幸问题;我在找到任何其他方式跳到webView底部时遇到问题,在寻找解决方案时发现了这个问题! (尽管如此,我还没有尝试进入WebView并使用javascript。)