TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #308 2.41K
Отображение HTML-тегов в Flutter

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Сегодня поговорим про отображение HTML-тегов как виджетов в наших приложениях на Flutter.

Чаще всего для этого используется библиотека flutter_html:

Html(data: ‘<p>Hello World</p>’);


Но у нее есть несколько минусов:

🔴 Она больше года не обновлялась, что с одной стороны хорошо, так как она стабильна, а с другой — она уже устаревает.
🔴 В ней есть баги. Например, если внутри тега <p> окажется список (<ul>, <ol>), то снизу появляется отступ, равный высоте списка.
🔴 Не очень понятная система стилизации. Чтобы что-то изменить, нужно разобраться, как это делается, так как вместо CSS-атрибутов используются собственные подходы.

Пример стилизации, где нужно поменять размер шрифта для всего документа:


data: ...,
style: {
‘*’: Style(
fontSize: FontSize(15),
),
}
);


Столкнувшись с этими минусами, мы решили перейти на вторую по популярности библиотеку — flutter_widget_from_html_core. Во-первых, она лишена вышеописанных багов. Во-вторых, она модульная, и к ней можно многое прикрутить.

HtmlWidget(‘<p>Hello World</p>’);


Со стилями всё интереснее. Шрифт устанавливается через стандартный TextStyle:


...,
textStyle: TextStyle(...),
);


Но если нужно его раскрасить или что-то ещё, всё становится сложнее, так как для каждого элемента нужно указать стили в виде CSS.


HtmlWidget(
...,
customStylesBuilder: (element) {
if (element.localName == ‘p’) {
return {‘color’: ‘red’};
}
return {};
},
);


Если вам нужно больше возможностей, например, работа с видео, аудио, SVG картинками, кеширование изображений, вы можете воспользоваться расширенной версией этой библиотеки — flutter_widget_from_html, или добавить необходимые дополнения самостоятельно.

А чем вы пользуетесь на своих проектах для отображения HTML как виджетов?⚙️
  • 👍 15
  • 🔥 5
  • ❤ 3
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →