2013-06-26 53 views
16

当我从字符串中加载数据,就当我向下滚动网页视图第一次闪烁几次闪烁。奇怪的WebView黑色滚动

这是我的代码,其中我加载数据:

webview.loadDataWithBaseURL(null, message.getmContent(), "text/html", "UTF-8", null); 

和XML:

<WebView 
     android:id="@+id/web_content" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/footer" 
     android:layout_below="@id/message_title" 
     android:layout_margin="4dp" 
     /> 
+0

你把你的网页视图滚动视图内?如果是,请尝试删除滚动视图。 –

+0

尝试机器人:聚焦=假 –

+0

然后设置机器人:scrollingCache = “假” –

回答

30

该溶液中加入:

webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
+0

webview.getSettings()setRenderPriority(WebSettings.RenderPriority.HIGH);已在API级别18中弃用。http://stackoverflow.com/a/23896233/684582 –

+2

LayerType软件会为我生成一个空白的webview。我能找到的最佳解决方案是使用setBackgroundColor()和Color对象(重要的,不是int)。 – Mdlc

+0

* setRenderPriority()*方法已在API级别18中弃用。 不建议调整线程优先级,并且在将来的版本中不支持此方法。 – anivaler

1

用上述溶液解析后,我的WebView autoFocused向下滚动。 我解决了闪烁和自动滚动方式:

webView.setFocusable(false); 
webView.setFocusableInTouchMode(false); 
0

从缓存

webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
webview.loadUrl(Your URL To Load); 
+0

你读过这个问题吗? – user1940676

+0

在使用LOAD_NO_CACHE我得到一点延迟加载,当我们使用这是ListView的是每次重新创建视图无法正常工作,避免闪烁,所以我用这个LOAD_CACHE_ELSE_NETWORK解决问题..我也曾经有过相同的问题眨眼在列表视图中使用的webview –

+0

您是否尝试过在listview中添加android:cacheColorHint =“@ null” ? – user1940676

1

加载数据,它也可以设置在XML文件中software层类型,它为我工作得很好。

android:layerType="software" 
+0

这是唯一的解决方案,为我工作,没有缺点。 –