【发布时间】:2019-04-18 01:16:11
【问题描述】:
有没有办法将一个小部件作为参数传递给另一个?
我的代码与此类似,有两个 TextWidget 类型为 BoldWidget 和 ItalicWidget:
abstract class TextWidget extends StatelessWidget {
final String text;
TextWidget({
@required this.text,
});
}
class BoldWidget extends TextWidget {
@override
Widget build(BuildContext context) {
return Text(this.text, style: TextStyle(fontWeight: FontWeight.bold),);
}
}
class ItalicWidget extends TextWidget {
@override
Widget build(BuildContext context) {
return Text(this.text, style: TextStyle(fontStyle: FontStyle.italic),);
}
}
在运行时,我想将 TextWidget 作为参数传递给另一个小部件 (TextDisplay),如下所示:
class TextDisplay extends StatelessWidget {
final TextWidget widget;
final String string;
const TextDisplay({Key key, this.widget, this.string}) : super(key: key);
@override
Widget build(BuildContext context) {
return widget(string);
}
}
在上面的代码中不起作用的是widget(string),错误消息“'widget' is not a function”。
如何将一个小部件作为另一个参数传递,以便它可以由另一个类构造?
在将TextWidget 传递给TextDisplay 之前,我的实际代码无法构建它,因为TextDisplay 需要将一些参数应用于TextWidget。
【问题讨论】: