【问题标题】:Strange webview black blinking when scrolling滚动时奇怪的webview黑色闪烁
【发布时间】:2019-04-03 16:26:18
【问题描述】:

我正在从字符串加载数据,当我第一次向下滚动时,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"
         />

【问题讨论】:

  • 你把你的网页视图放在滚动视图里面了吗?如果是,请尝试删除滚动视图。
  • 试试 android:focus=false
  • 然后设置 android:scrollingCache="false"

标签: android android-webview


【解决方案1】:

解决办法是添加:

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

【讨论】:

  • webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);在 API 级别 18 中已弃用。stackoverflow.com/a/23896233/684582
  • LayerType 软件导致我的网页视图空白。我能找到的最佳解决方案是将 setBackgroundColor() 与 Color 对象(重要,而不是 int)一起使用。
  • setRenderPriority() 方法在 API 级别 18 中已弃用。不建议调整线程优先级,未来版本将不再支持。
【解决方案2】:

也可以在 xml 文件中设置software 层类型,它对我来说很好。

android:layerType="software"

【讨论】:

  • 这是唯一对我有用且没有缺点的解决方案。
【解决方案3】:

使用上述解决方案解决后,My WebView autoFocused on scroll down。 我通过以下方式解决了闪烁和自动滚动:

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

【讨论】:

    【解决方案4】:

    从缓存中加载数据

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

    【讨论】:

    • 在使用 LOAD_NO_CACHE 时,我的加载有点延迟,当我们使用它时,listView 每次重新创建视图都不能很好地避免闪烁,所以我使用 LOAD_CACHE_ELSE_NETWORK 来解决这个问题。我在 listview 中使用的 webview 中也有同样的闪烁问题
    • 您是否尝试过将 android:cacheColorHint="@null" 添加到列表视图?
    【解决方案5】:

    也可以在 xml 文件中设置 android:minHeight,它对我来说很好。

    <WebView
       android:id="@+id/webView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:minHeight="200dp"/>
    

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 2014-09-07
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 2013-07-09
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多