为了账号安全,请及时绑定邮箱和手机立即绑定

在 Android 中的 ListView 上显示 CSS 样式的 Html 数据

在 Android 中的 ListView 上显示 CSS 样式的 Html 数据

达令说 2024-01-11 14:24:13
所以,我想在ListView. 我知道有一些选项,例如 usingWebView和TextViewwithfromHtml()方法,但 fromHtml 不支持 css 并且 WebView 不能被 ListView 项目整除。有什么想法吗?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

TextView对 css 的了解很差,但它不是一个显示样式化网站内容的工具,因此对于简单的 html 文本来说已经足够了。当谈到 时WebView,显示复杂的 html、css、javascript 内容是一个好主意。如果需要,您可以使用。当然它没有那么快TextView,但是有一些性能改进,如下:

// In AndroidManifest


<application

    android:allowBackup="true"

    android:hardwareAccelerated="true"

    ...

>


<activity android:name=".activity.MainActivity"

        android:hardwareAccelerated="true">

...


// In onCreate method from Activity class


WebView webView = (WebView) findViewById(R.id.webViewId);

WebSettings settings = webView.getSettings();

settings.setJavaScriptEnabled(true);

settings.setDefaultTextEncodingName("utf-8");

settings.setSupportZoom(true);

settings.setBuiltInZoomControls(false);

settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

settings.setRenderPriority(WebSettings.RenderPriority.HIGH);

settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

settings.setLoadWithOverviewMode(true);

settings.setDomStorageEnabled(true);

this.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

this.setScrollbarFadingEnabled(true);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)

    this.setLayerType(View.LAYER_TYPE_HARDWARE, null); // chromium, enable hardware acceleration

else

    this.setLayerType(View.LAYER_TYPE_SOFTWARE, null); // older android version, disable hardware acceleration


// use this, for don't getting some errors.

webView.loadDataWithBaseURL(null, "HtmlString", "text/html; charset=UTF-8", "UTF-8", null);



查看完整回答
反对 回复 2024-01-11
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您不能在 android 原生上使用 CSS 属性fromHtml(),但肯定可以使用第三方库作为fromHtml()支持 CSS 的替代方案。其中之一就是这个



查看完整回答
反对 回复 2024-01-11
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信