Отображение Css в стиле Html Данные в ListView в Android - PullRequest
2 голосов
/ 19 апреля 2020

Итак, я хочу отобразить большую html строку, которая включает css (размер шрифта, цвет, семейство шрифтов, текстовое оформление и т. Д. c ..) по частям на ListView. Я знаю, что для этого есть несколько вариантов, например, использование WebView и TextView с методом fromHtml(), но из Html не поддерживается css, а WebView не делится на элементы ListView. Есть идеи для этого?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

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);
0 голосов
/ 21 апреля 2020

Вы не можете использовать атрибуты CSS на нативном fromHtml() android, но, безусловно, можете использовать сторонние библиотеки в качестве альтернативы fromHtml(), которая поддерживает CSS. Один из них может быть этот .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...