Какие теги HTML поддерживаются Android TextView?
Класс TextView в Android может отображать форматированный текст с помощью HTML.fromHtml(), как описано, например, здесь: HTML-теги в строке для TextView
Класс TextView может работать только с небольшим подмножеством HTML, но я не знаю, какие теги и атрибуты поддерживаются, а какие нет. Резюме, приведенное здесь: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html, похоже, неверно. Например,
5 ответов
Посмотрел его для всех, кто его ищет.
Дата: июль 2017
Источник: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java
Html.fromHtml поддерживает:
- п
- уль
- литий
- ДИВ
- пролет
- сильный
- б
- Эм
- цитировать
- д.ф.н.
- я
- большой
- маленький
- шрифт
- BLOCKQUOTE
- тт
- U
- дель
- s
- наносить удар
- вир
- суб
- h1
- h2
- h3
- h4
- h5
- h6
- IMG
- уш
Я заметил, что эта статья:
перечисляет
(Другие поддерживаемые атрибуты показаны для тегов на этой странице.)
Автор говорит, что создал ссылку, посмотрев код в репозиториях git для Android.
Изменить: Со временем кажется, что список поддерживаемых тегов изменился. См. Этот пост позже, например: http://www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml/.
Основываясь на обеих этих статьях, я бы предположил, что изучение исходного кода представляется наиболее надежным способом получения последней информации.
Наилучший подход к использованию разделов 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) работает нормально, и вы увидите жирный текст в приветственном сообщении.
Выход:
Добро пожаловать в ваш любимый музыкальный магазин приложений. Вы вошли как: имя пользователя
Поскольку он постоянно обновляется, лучший способ отследить, какие HTML-теги поддерживаются в Android, - это проверить исходный код Html.java.
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));
}