Что такое StrutStyle в виджете «Текст флаттера» - PullRequest
2 голосов
/ 28 июня 2019

Что такое StrutStyle в виджете Флаттер Text?Я прочитал эту документацию , но мне трудно понять значение, особенно параметры height, leading и fontSize.

Мой ответ приведен ниже.

1 Ответ

5 голосов
/ 28 июня 2019

Вы можете думать о StrutStyle как о минимальной высоте строки для текста в Text виджете. документация - хорошее место для начала.

Вот изображение, которое поможет визуализировать его:

enter image description here

Цветной прямоугольник слева - это стойка (хотя на самом деле стойка не имеет ширины).Высота этого прямоугольника является минимальной высотой строки.Линия не может быть короче этого.Но оно может быть выше.

  • Восхождение - это расстояние от базовой линии до верха текста (как определено шрифтом, а не каким-либо конкретным глифом)
  • Достойноерасстояние от базовой линии до нижней части текста (как определено шрифтом, а не каким-либо конкретным глифом)
  • Ведущий (произносится как "ведущий", как в свинцовом металле, который использовались старыми наборщиками)между линиями типа) - это расстояние между нижней частью одной строки и вершиной следующей.В распорке половина ведущего помещена сверху и половина одного основания.На рисунке показана серая область.

Вы можете изменить размер стойки по вертикали, используя множитель.

enter image description here

В классе StrutStyle параметр height является множителем для подъема и спуска.На иллюстрации высота составляет приблизительно 1,7, что делает зеленый и розовый цвет пропорционально больше, чем на исходном изображении.Множитель ведущей высоты можно контролировать отдельно.Вы используете параметр leading, чтобы установить его.Я использовал тот же множитель, что и для подъема и спуска.Базовая линия остается прежней.

const Text(
  'My text',            // use 'My text \nMy text' to see multiple lines
  style: TextStyle(
    fontSize: 10,
    fontFamily: 'Roboto',
  ),
  strutStyle: StrutStyle(
    fontFamily: 'Roboto',
    fontSize: 14,
    height: 1.7,
    leading: 1.7,
  ),
),

Другие настройки, такие как fontFamily и fontSize, просто определяют, какие метрики шрифта используются для использования множителей высоты.Также обратите внимание, что TextStyle не обязательно должен совпадать с StrutStyle.

Идея распорки исходит от CSS , полученной из TeX.

См. Также

...