在我的应用中,我有一个显示论坛帖子的部分。所有论坛帖子都是HTML,我每页显示20个。我正在使用带有20个WebView的ScrollView。其中一个功能是,当用户打开论坛帖子时,我会加载所有WebView并滚动到用户已阅读的最后一个帖子。由于知道论坛帖子何时完全呈现并不是一件容易的事情,我只想延迟滚动200ms。
在Android 4.4 KitKat推出基于Chromium的新WebView之前,一切正常。
渲染速度很慢,200ms到期,我滚动到正确的WebView,渲染只在滚动几秒后发生。这意味着用户应该看到的WebView的位置将离开屏幕,因为WebView的大小已经改变。
这个问题的解决方法是什么,因为postDelaying 5秒不是一个选项。
感谢。
答案 0 :(得分:0)
好的,所以我看一下你的应用程序,你的问题不是渲染性能,而是页面加载时间/布局时间。
onPageFinished
事件和WebView执行布局之间的延迟可能在WebView版本之间发生了变化,但是从一个简单的A / B比较(至少在第一代Nexus 7上),它看起来不像就像加载内容的时间显着增加一样(在Classic和Chromium WebView上加载所有论坛帖子似乎需要大约相同的时间)。
onPageFinished
回调仅表示主框架的主资源已成功加载。这并不意味着资源中的数据已显示在屏幕上。
在onSizeChanged
中等待> 0高度似乎是合理的做法。如果帖子包含加载缓慢的资源(如大图),但等待所有帖子完全加载意味着您可能最终需要等待很长时间,它将会失败。