Какие HTML-теги поддерживаются Android TextView?

Класс Android TextView может отображать форматированный текст через HTML.fromHtml(), как описано здесь: HTML-теги в строке для TextView

Класс TextView может работать только с небольшим подмножеством HTML, но я не знаю, какие теги и атрибуты поддерживаются, а какие нет. Сводка, приведенная здесь: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html, кажется, не верна. Например. < div align = "..." → НЕ работает для меня с помощью Android 2.2

Ответ 1

Я заметил, что эта статья:

http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html

списки <div> как поддерживаемый Html.fromHtml(), но не поддерживает поддержку атрибута align.

(Другие поддерживаемые атрибуты показаны для тегов на этой странице.)

Автор говорит, что он построил ссылку, просмотрев код в репозиториях git для Android.

Изменить: Со временем появляется список поддерживаемых тегов. См. Этот более поздний пост, например: http://www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml/.

Основываясь на обеих этих статьях, я бы предположил, что изучение исходного кода представляется самым надежным способом получения последней информации.

Ответ 2

Посмотрел, все для его поиска.

Дата: июль 2017 года

Источник: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java

Html.fromHtml поддерживает:

  • р
  • уль
  • Li
  • DIV
  • диапазон
  • сильный
  • б
  • эм
  • процитировать
  • д.ф.н.
  • я
  • большой
  • маленький
  • шрифта
  • BLOCKQUOTE
  • тт
  • а
  • и
  • дель
  • s
  • Забастовка
  • вир
  • суб
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • IMG
  • br (Спасибо Carlo Conserva за вклад)

Ответ 3

Лучший подход к использованию разделов CData для строки в файле strings.xml для получения фактического отображения содержимого html в TextView в приведенном ниже фрагменте кода даст вам справедливую идею.

//в файле string.xml

<string name="welcome_text"><![CDATA[<b>Welcome,</b> to the forthetyroprogrammers blog Logged in as:]]> %1$s.</string>

Java-код

String welcomStr=String.format(getString(R.string.welcome_text),username);
tvWelcomeUser.setText(Html.fromHtml(welcomStr));

Раздел CData в текстовом тексте сохраняет данные тега html без изменений даже после форматирования текста с использованием метода String.format. Итак, Html.fromHtml(str) отлично работает, и вы увидите жирный текст в приветственном сообщении.

Вывод:

Добро пожаловать в ваш любимый магазин музыкальных приложений. Вход в систему: имя пользователя

Ответ 4

Поскольку он постоянно обновляется, лучший способ отслеживать, какие HTML-теги поддерживаются в Android, - проверить исходный код Html.java

Ответ 5

if (  android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) 
     {
      tvDocument.setText(Html.fromHtml(bodyData,Html.FROM_HTML_MODE_LEGACY));
     } 
else { 
     tvDocument.setText(Html.fromHtml(bodyData));
     }

введите ссылку здесь