【问题标题】:WebView inside listview is giving jerky behaviour while scrolling列表视图中的 WebView 在滚动时出现生涩的行为
【发布时间】:2014-11-26 00:15:28
【问题描述】:

我正在使用 Webview 作为 ListItem 在我的应用程序中显示一些 html 提要 它工作得很好,只是有时很慢。自从我 不知道内容的大小然后我无法设置每个的高度 Webview,因此我有以下代码(这是代码 单个 ListItem):

<WebView android:id="@+id/rss_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        style="@style/RssText" 
        android:textColor="#FFFFFF" />

但是“wrap_content”会导致 Webview 重新调整大小 滚动。 listview的scrollbar-indicator也有问题 知道完整列表的大小,因此它会改变大小 滚动。所有这些都会在滚动时导致非常“生涩”的体验。

有没有更好的方法来做到这一点?真的很感激任何 帮助!提前致谢

【问题讨论】:

    标签: android-listview android-webview


    【解决方案1】:

    尝试在WebView上设置此设置

    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);
    settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
    settings.setTextSize(TextSize.LARGER);
    

    【讨论】:

      【解决方案2】:

      如果您正在加载复杂的 HTML(或来自网络的内容),我建议您只使用固定大小的 WebView 并在其中显示所有内容。无论您为该 Fragment/Activity/View 设计什么 UI,都可以在 HTML 中完成。

      使用可滚动的父容器让 WebView 在所有情况下都能正常工作非常困难。您不仅需要处理异步加载的内容(因此大小会像您提到的那样发生变化),您还需要投入大量的技巧以使 WebView 正确滚动(我敢打赌您的解决方案不允许 div/iframe在 WebView 中滚动)并获得正确行为的固定位置元素也是一个问题。另外记得测试 KK 和 JB,因为那里的 WebView 差别很大。

      【讨论】:

        猜你喜欢
        • 2015-02-15
        • 1970-01-01
        • 2014-07-21
        • 2011-11-04
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        • 2013-02-28
        • 1970-01-01
        相关资源
        最近更新 更多