我更喜欢使用以下方式构建Widget
,我希望能够根据一些参数修改列的children
,我有两个问题:
这样做是否有任何负面影响,而不是模板中的方式
而且,LayoutBuilder
是警告Widget
的唯一可用选项,因为我们处理final
参数,不能用作setters
!< / p>
@override
Widget build(BuildContext context) {
var _bar = new AppBar(
title: new Text(widget.title),
);
var _txt = new LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
if(constraints.maxWidth < 200.0) {
return
new Text(
"Rotate the screen pls",
style: Theme.of(context).textTheme.display1
);
} else {
return
new Text(
"Contents page",
style: Theme.of(context).textTheme.display1
);
}
}
);
var _btnTxt = new Text(
"ok",
style: Theme.of(context).textTheme.display1
);
var _btn = new FlatButton(
child: _btnTxt,
textColor: new Color(0xFF66BB6A),
onPressed: () => Navigator.of(context).pop('/home')
);
var _scf = new Scaffold(
appBar: _bar,
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[_txt, _btn],
),
),
);
return _scf;
}