了解 Flutter + Material 应用程序中使用的默认样式
Understanding what default styles are used in a Flutter + Material app
刚开始使用 Flutter + Material 设计。我注意到当使用 ThemeData 创建主题时,如果我使用这样的东西:
ThemeData(
textTheme: TextTheme(bodyText1: TextStyle(color: Colors.white)),
)
它似乎没有在带有白色文本小部件的简单 GridView 中为文本着色。但是,如果我将上面的内容更改为使用 bodyText2
它会。
bodyText2
用于跨应用程序的文本背后的逻辑是什么?是否有一个好地方可以参考使用了哪些文本样式名称以及为什么在主题情况下?这仅仅是通过反复试验获得的知识,还是有一些很好的包罗万象的规则来规定在什么情况下使用哪种风格?
谢谢。
您已在此处阅读与主题相关的文档:https://flutter.dev/docs/cookbook/design/themes
他们已经举例说明了。
我 运行 遇到了同样的问题并对此进行了一些研究。
根据 Text
的官方文档:
The style argument is optional. When omitted, the text will use the style from the closest enclosing DefaultTextStyle
.
以及TextTheme
中bodyText2的解释:
The default text style for Material.
现在答案很清楚了。如果您的 Text
小部件没有任何明确给定的文本样式,并且没有以在某些节点处放置 DefaultTextStyle
的方式从其祖先那里继承 继承的 文本样式.然后它将使用主题 bodyText2
中的值。
刚开始使用 Flutter + Material 设计。我注意到当使用 ThemeData 创建主题时,如果我使用这样的东西:
ThemeData(
textTheme: TextTheme(bodyText1: TextStyle(color: Colors.white)),
)
它似乎没有在带有白色文本小部件的简单 GridView 中为文本着色。但是,如果我将上面的内容更改为使用 bodyText2
它会。
bodyText2
用于跨应用程序的文本背后的逻辑是什么?是否有一个好地方可以参考使用了哪些文本样式名称以及为什么在主题情况下?这仅仅是通过反复试验获得的知识,还是有一些很好的包罗万象的规则来规定在什么情况下使用哪种风格?
谢谢。
您已在此处阅读与主题相关的文档:https://flutter.dev/docs/cookbook/design/themes
他们已经举例说明了。
我 运行 遇到了同样的问题并对此进行了一些研究。
根据 Text
的官方文档:
The style argument is optional. When omitted, the text will use the style from the closest enclosing
DefaultTextStyle
.
以及TextTheme
中bodyText2的解释:
The default text style for Material.
现在答案很清楚了。如果您的 Text
小部件没有任何明确给定的文本样式,并且没有以在某些节点处放置 DefaultTextStyle
的方式从其祖先那里继承 继承的 文本样式.然后它将使用主题 bodyText2
中的值。