我尝试构建一个自定义布局,它是一个具有2个属性的Card(): Widget标题和Widget内容。
我想在标题小部件上应用默认文本样式,如果它是一个文本小部件,即。就像flutter在AppBar中做的那样。如果标题小部件始终是Text()小部件,这很容易,但我无法找到如何处理它,如果它可以是任何其他小部件…
我想做的是:
// This one should work and apply a default text style on the title widget
@override
Widget build(BuildContext context)
{
return MyCard(
title: Text("foo"),
content: Text("bar")
);
}
// this one should work too
@override
Widget build(BuildContext context)
{
return MyCard(
title: Icon(Icons.star),
content: Text("bar")
);
}
// and this one should style the text with the default style +++
@override
Widget build(BuildContext context)
{
return MyCard(
title: Row(children: [ Text("part of "), Text("the title") ]),
content: Text("bar")
);
}
ThemeData和Theme(data: xxx, child: Card(.....))让我定义整个主题,但它没有指定如何将正确的textTheme应用到标题小部件。
怎么做?
编辑:增加了第三个例子,使其更容易理解。
您可以在主组件的Material小部件中提供textTheme属性。飞镖文件。
输入图片描述