【发布时间】:2011-12-19 13:13:26
【问题描述】:
我正在使用 Android WebView 来显示运行时生成的一些 HTML 内容(准确地说是带有 HTML 标记的 String)。内容基本上有一个 HTML <table ...> 显示各种东西,这个表的行是由我的程序生成的。通过调用 loadDataWithBaseUrl() 方法将 HTML 内容加载到我的 WebView 中。
现在每次生成新行时,我都会创建一个新的<tr></tr> 并修改 HTML 字符串以将新创建的行添加到表中。
显然我必须调用loadDataWithBaseUrl() 方法来重新加载 HTML 并显示最新的行。
现在这里有几个问题:
第一) 每次调用loadDataWithBaseUrl(),WebView都会滚动到页面顶部
第二) 我想在WebView 加载到页面底部后滚动它,以便始终显示最新生成的行。
现在的实际问题:
如果我在页面加载完成后尝试调用WebView 的pageDown(true) 方法,我会得到一个讨厌的动画,用户必须等待WebView 完成滚动到页面底部。
由于似乎没有任何方法可以禁用这种上下跳跃行为,因此我使用了 JavaScript,并且在页面加载后将页面一直滚动到底部(在 window.onload 上调用函数)
现在我面临另一个问题!仍然存在由于 WebView 重新加载页面导致一直向上滚动和 JavaScript 函数立即将页面滚动到底部而导致的闪烁。
在过去的几天里,我已经花费了无数个小时,但仍然没有找到达到我想要的结果的方法。有没有办法解决这个问题? (可能是解决方法/不同的策略?)罪魁祸首显然是 WebView 在完成加载页面时滚动到顶部的固有行为。
【问题讨论】:
标签: javascript android webview scroll flicker