Ask the assistant
0/400
Your question is processed by an AI service and kept to improve answers. Do not enter personal data.

    Text

    This page has not been translated into English yet. The Russian original is below.

    Отображение текстового контента с поддержкой стилей, выравнивания и переноса.

    Тип: leaf

    Text "Hello, World!"

    Параметры

    Параметр Тип Описание
    (позиционный 0) string Текст для отображения
    textAlign string Выравнивание текста: left , right , center , justify , start , end
    direction string Направление текста: ltr , rtl
    overflow string Поведение при переполнении: clip , fade , ellipsis , visible
    softWrap bool Разрешить перенос строк
    maxLines int Максимальное количество строк
    textWidthBasis string Базис ширины текста: parent , longestLine
    selectionColor color Цвет выделения текста
    semanticsLabel string Метка для accessibility
    semanticsIdentifier string Идентификатор для accessibility

    Вложенные структуры

    #style

    Стилизация текста через ReeelValueParser.parseTextStyle .

    Text "Заголовок"
      #style fontSize:24 fontWeight:bold color:#FFFFFF

    Контур вместо заливки

    strokeWidth: рисует букву ОБВОДКОЙ — приём для гигантской цифры главы или слова за содержимым. Цвет обводки берёт strokeColor: , а без него — color: .

    Text "03"
      #style fontFamily:"Anton" fontSize:320 strokeWidth:1.5 color:0x1FFAFAFF

    Обводка ДОБАВЛЯЕТСЯ к заливке — так же, как -webkit-text-stroke добавляется к color в вёрстке. Контур без заливки — это прозрачный color: , ровно как в таблице стилей. У TextStyle краска одна ( foreground ), и Flutter запрещает держать её вместе с color , поэтому, когда видны обе, билдер Text рисует букву ДВАЖДЫ: сперва заливку, потом контур — в том же порядке, что paint-order у браузера. Разметка об этом не знает.

    Регистр — стилем, а не строкой

    textTransform: ( uppercase / lowercase / none ) поднимает или опускает регистр НАДПИСИ, не трогая сам текст.

    Text $strings.chapterLabel
      #style fontSize:12 letterSpacing:2.16 textTransform:uppercase

    Почему не {upperCase(...)} : функция меняет строку, и на вебе капс уезжает в САМ ДОКУМЕНТ — поиск по странице перестаёт находить слово обычным написанием, копирование даёт крик, а скринридер читает по буквам. Стиль меняет только отрисовку.

    На вебе это CSS text-transform . Во Flutter такого свойства нет вовсе, поэтому там билдер преобразует строку сам, а исходную кладёт в semanticsLabel — вид одинаковый, произношение правильное.

    Работает у Text , SelectableText и RichText (в нём наследуется пролётами, как в CSS). #style , отданный виджету, который владеет своей строкой (подпись поля, Chip ), регистр НЕ меняет — одинаково на обоих рендерах.

    capitalize не поддержан намеренно: CSS поднимает первую букву слова по границам слова Unicode ( x-ray → X-Ray ), в Dart такого примитива нет, и одна разметка дала бы два разных текста.

    Примеры

    Текст с переменной (шаблонная строка)

    Text $"Привет, ${userName}!"

    Стилизованный текст

    Text "Заголовок раздела"
      #style fontSize:32 fontWeight:bold color:#FFFFFF

    Текст с ограничением строк

    Text "Очень длинное описание..." maxLines:2 overflow:ellipsis

    Текст в контексте

    Column spacing:8
      Text "Заголовок"
        #style fontSize:24 fontWeight:bold
      Text "Подзаголовок"
        #style fontSize:16 color:#888888

    See also

    • Column — вертикальный контейнер для размещения текстов
    • Button — интерактивный элемент, часто содержит Text
    DOCS
    dark_mode_baseline
    RU/EN
    menu_baseline