我使用loadData()后跟reload()更新webView中的html。我得到要显示的新数据,但页面滚动没有更新。我想保持页面底部的视图。我可以等很长时间,但仍然没有更新。单击webView后,滚动条会调整,我可以拖动到页面底部并查看新文本。
我尝试过的事情: - onPageFinished()中的多个设置和调用。没有用,因为getContentHeight()还没有改变。我也试过scrollTo(100 + getContentHeight),但这不起作用。 - pageDown(true)
在reload()
browser.requestFocusFromTouch() - 仍然不好,以为我可以模拟我的点击。
添加一些br标签。这有点工作,但br的数量必须等于新文本的行数。由于新线的数量不是可以根据方向和屏幕变量精确确定的,因此不是一个好的解决方案。 有任何想法吗? TIA
答案 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。)