了解 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.

以及TextThemebodyText2的解释:

The default text style for Material.

现在答案很清楚了。如果您的 Text 小部件没有任何明确给定的文本样式,并且没有以在某些节点处放置 DefaultTextStyle 的方式从其祖先那里继承 继承的 文本样式.然后它将使用主题 bodyText2 中的值。