我有一个方便的方法,它返回一个Column
,其中包含一些Text
小部件,我们将其称为mySpecialColumn(String header, String body)
。现在我遇到一种情况,我想在使用此方法的一个特定位置更改文本颜色。由于这是非常罕见的例外,因此在Color
的方法签名中添加一个(可选的)mySpecialColumn
参数似乎是多余的。
我发现我可以用Material
包装我的自定义窗口小部件实例,因为它具有textStyle
属性。这似乎工作正常,但这是首选的方法吗?
也许对此我错了,但是Material
似乎应该主要用于创建自定义的Material
小部件,而不是像更改文本颜色那样琐碎的事情?我本来希望有一些通用的小工具,例如Container
或类似的小工具,可以更改其子代的文本颜色?
答案 0 :(得分:1)
用 DefaultTextStyle
包裹,例如:
DefaultTextStyle.merge(
style: TextStyle(color: Colors.grey[400], fontSize: 12),
child: Column(...),
)
答案 1 :(得分:0)
您可以将mySpecialColumn
包装在Theme
小部件中。然后使用ThemeData
设置其子级的文本颜色。
Theme(
// Create a unique theme with "ThemeData"
data: ThemeData(
textTheme: TextTheme(
body1: TextStyle(
color: Colors.red
)
)
),
child: mySpecialColumn(
...
)
);
有关更多详细信息,请参见the docs
答案 2 :(得分:0)
像这样吗?
child: Text(
'Post',
style: TextStyle(color: Colors.white),),