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