body2 устарел и не должен использоваться. Это термин, используемый в версии Material Design 2014 года. - предупреждающее сообщение в трепете

Если вы обновите SDK flutter с версии v1.12.13 до любой версии после v1.13.8, вы получите несколько предупреждений, связанных с использованием textTheme. Например, один из них приведен ниже.

info: body2 устарел и не должен использоваться. Это термин, используемый в версии Material Design 2014 года. Современный термин - bodyText1. Эта функция устарела после версии 1.13.8..

какие изменения в новой версии? как мигрировать?

1 ответ

Решение

В чем разница между темой текста спецификации материала 2014 и темой текста спецификации материала 2018?

В TextTheme API изначально был основан на исходной спецификации дизайна материала (2014 г.), в которой использовались разные названия стилей текста.

Оба значения приведены ниже.

Спецификация 2018 - Стили текста

NAME         SIZE  WEIGHT  SPACING

headline1    96.0  light   -1.5
headline2    60.0  light   -0.5
headline3    48.0  regular  0.0
headline4    34.0  regular  0.25
headline5    24.0  regular  0.0
headline6    20.0  medium   0.15
subtitle1    16.0  regular  0.15
subtitle2    14.0  medium   0.1
body1        16.0  medium   0.5   (bodyText1)
body2        14.0  regular  0.25  (bodyText2)
button       14.0  medium   1.25
caption      12.0  regular  0.4
overline     10.0  regular  1.5

Спецификация 2014 года - Стиль текста

NAME       SIZE   WEIGHT   SPACING  2018 NAME

display4   112.0  thin     0.0      headline1
display3   56.0   normal   0.0      headline2
display2   45.0   normal   0.0      headline3
display1   34.0   normal   0.0      headline4
headline   24.0   normal   0.0      headline5
title      20.0   medium   0.0      headline6
subhead    16.0   normal   0.0      subtitle1
body2      14.0   medium   0.0      body1 (bodyText1)
body1      14.0   normal   0.0      body2 (bodyText2)
caption    12.0   normal   0.0      caption
button     14.0   medium   0.0      button
subtitle   14.0   medium   0.0      subtitle2
overline   10.0   normal   0.0      overline

Как использовать новые атрибуты TextTheme? (версия флаттера v1.13.8 и выше)

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

Theme.of(context).textTheme.headline1
Theme.of(context).textTheme.headline2
Theme.of(context).textTheme.headline3
Theme.of(context).textTheme.headline4
Theme.of(context).textTheme.headline5
Theme.of(context).textTheme.headline6
Theme.of(context).textTheme.subtitle1
Theme.of(context).textTheme.subtitle2
Theme.of(context).textTheme.body1
Theme.of(context).textTheme.body2
Theme.of(context).textTheme.button
Theme.of(context).textTheme.caption
Theme.of(context).textTheme.overline

Какие имена атрибутов не меняются?

Только следующие два имени атрибута являются общими в обоих классах Theme.

Theme.of(context).textTheme.caption
Theme.of(context).textTheme.overline
Другие вопросы по тегам