了解Flutter+Material应用程序中使用的默认样式



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

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

在一个简单的GridView中,它似乎并没有用白色来给文本上色。但是,如果我将上面的内容更改为使用bodyText2,则确实如此。

bodyText2用于整个应用程序的文本背后的逻辑是什么?有没有一个好的地方可以参考哪些文本样式的名称被使用,以及为什么在主题化的情况下使用?这一切只是通过试错获得的知识吗?还是有一些很好的包罗万象的规则可以在什么情况下使用哪些风格?

谢谢。

更新:如果使用2021样式,而不是2018样式,请将bodyText2(2018样式(替换为bodyMedium(2021样式(。结束更新

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

根据Text:的官方文件

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

以及对TextTheme:中bodyText2的解释

材质的默认文本样式。

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

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

他们已经举例说明了。

相关内容

  • 没有找到相关文章

最新更新