android-webview loaddata滚动设置直到单击后才会更新
作者:互联网
我使用loadData()和reload()更新了webView中的html.我得到了要显示的新数据,但是页面的滚动尚未更新.我想将页面视图保持在底部.我可以等待很长时间,但仍然没有更新.单击webView后,滚动条将调整,然后可以拖动到页面底部并查看新文本.
我尝试过的事情:
-多个设置并调用onPageFinished().由于getContentHeight()尚未更改,因此没有任何效果.我也尝试过scrollTo(100 getContentHeight),这是行不通的.
-pageDown(true)
>在reload()之后调用requestLayout()
> browser.requestFocusFromTouch()-仍然不好,以为我可以模拟点击.
>添加一些br标签.这有点奏效,但是br的数量必须等于新文本的行数.由于不能根据方向和屏幕变量准确确定换行的数量,因此不是一个好的解决方法.
有任何想法吗? TIA
解决方法:
如果要在完成加载后将Webview滚动到底部,我发现必须在onNewPicture中使用pageDown(true). (我认为这是视图完成绘制时触发的事件.)
所以代码看起来像
webView.setPictureListener( new WebView.PictureListener() {
public void onNewPicture(WebView view, Picture picture) {
webView.pageDown(true);
}
}
使用pageDown有一个不幸的问题,即可见地滚动页面.我在寻找其他任何方法来跳到webView底部时遇到问题,在寻找解决方案时发现了这个问题! (不过,我还没有尝试进入WebView并使用javascript.)
标签:uiwebview,android 来源: https://codeday.me/bug/20191023/1915523.html