3

刚开始使用 Flutter + Material 设计。我注意到当使用 ThemeData 创建主题时,如果我使用这样的东西:

ThemeData(
  textTheme: TextTheme(bodyText1: TextStyle(color: Colors.white)),
)

它似乎没有用白色的文本小部件为简单的 GridView 中的文本着色。但是,如果我更改以上内容以使用bodyText2它。

bodyText2在整个应用程序中用于文本背后的逻辑是什么?是否有一个好地方可以参考使用哪些文本样式名称以及为什么在主题情况下?这只是通过反复试验获得的知识,还是有一些很好的包罗万象的规则来确定在哪种情况下使用哪种样式?

谢谢。

4

2 回答 2

2

我遇到了同样的问题并对此进行了一些研究。

根据官方文档Text

样式参数是可选的。省略时,文本将使用最近封闭的样式DefaultTextStyle

以及bodyText2的解释TextTheme

Material的默认文本样式。

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

于 2021-05-20T11:19:53.117 回答
0

您在此处阅读与主题相关的文档:https ://flutter.dev/docs/cookbook/design/themes

他们已经举例说明。

于 2021-03-31T11:48:39.767 回答