Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止由于固有的WebView行为而导致不必要的闪烁_Javascript_Android_Webview_Scroll_Flicker - Fatal编程技术网

Javascript 防止由于固有的WebView行为而导致不必要的闪烁

Javascript 防止由于固有的WebView行为而导致不必要的闪烁,javascript,android,webview,scroll,flicker,Javascript,Android,Webview,Scroll,Flicker,我使用安卓网络视图来显示运行时生成的一些HTML内容(精确地说是带有HTML标记的字符串)。内容基本上是一个HTML,显示各种内容,此表的行由我的程序生成。通过调用loadDataWithBaseUrl()方法将HTML内容加载到my WebView中。 现在,每次生成新行时,我都会创建一个新的,并修改HTML字符串以将新创建的行添加到表中。 显然,我必须调用loadDataWithBaseUrl()方法来重新加载HTML并显示最新的行 现在这里有几个问题: 首先)每次调用loadDataWit

我使用安卓网络视图来显示运行时生成的一些HTML内容(精确地说是带有HTML标记的
字符串)。内容基本上是一个HTML
,显示各种内容,此表的行由我的程序生成。通过调用
loadDataWithBaseUrl()
方法将HTML内容加载到my WebView中。
现在,每次生成新行时,我都会创建一个新的
,并修改HTML字符串以将新创建的行添加到表中。 显然,我必须调用
loadDataWithBaseUrl()
方法来重新加载HTML并显示最新的行

现在这里有几个问题:
首先)每次调用
loadDataWithBaseUrl()
时,WebView都会滚动到页面顶部 Second)我想在将
WebView一直加载到页面底部后滚动它,以便始终显示最新生成的行

现在是实际问题:
如果我试图在页面加载完成后调用
WebView
pageDown(true)
方法,我将得到一个令人讨厌的动画,用户必须等待WebView完成滚动到页面底部。
由于似乎没有办法禁用这种上下跳跃行为,我求助于JavaScript,在页面加载后将页面一直滚动到底(调用
window.onload
)上的函数
现在我面临另一个问题!但是,WebView重新加载页面会导致页面一直向上滚动,而JavaScript函数会立即将页面滚动到底部,这仍然会导致闪烁


在过去的几天里,我花了无数个小时,但仍然没有找到一种方法来达到我想要的结果。有没有办法解决这个问题?(解决方法/可能是不同的策略?)罪魁祸首显然是WebView的固有行为,它在加载完页面后会滚动到顶部。

您可以尝试以下方法:

if (_webView.getScrollY() + _webView.getHeight() > _webView.getContentHeight())
    _webView.scrollTo(0, _webView.getContentHeight() - _webView.getHeight());

有一些关于如何使滚动和翻页电子墨水友好的帖子:


已尝试。。。闪烁!如果我能阻止WebView自动滚动到顶部就好了。。。。。。。