body2 已弃用,不应使用。这是 2014 版 material 设计中使用的术语。 - 颤动中的警告信息
body2 is deprecated and shouldn't be used. This is the term used in the 2014 version of material design. - warning message in flutter
如果你将flutter SDK从v1.12.13版本更新到v1.13.8之后的任何版本,你会收到几条相关的警告信息到 textTheme 用法。例如,下面给出了其中之一。
info: body2 is deprecated and shouldn't be used. This is the term used in the 2014 version of material design. The modern term is bodyText1. This feature was deprecated after v1.13.8..
新版本有哪些变化?如何迁移?
material 规范 2014 的文本主题与 material 规范 2018 的文本主题有何区别?
TextTheme
API 最初是根据原作 material (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属性? (flutter 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.of(context).textTheme.caption
Theme.of(context).textTheme.overline
如果你将flutter SDK从v1.12.13版本更新到v1.13.8之后的任何版本,你会收到几条相关的警告信息到 textTheme 用法。例如,下面给出了其中之一。
info: body2 is deprecated and shouldn't be used. This is the term used in the 2014 version of material design. The modern term is bodyText1. This feature was deprecated after v1.13.8..
新版本有哪些变化?如何迁移?
material 规范 2014 的文本主题与 material 规范 2018 的文本主题有何区别?
TextTheme
API 最初是根据原作 material (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属性? (flutter 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.of(context).textTheme.caption
Theme.of(context).textTheme.overline