更改/添加小组件内容

时间:2018-03-02 19:23:33

标签: dart flutter

我更喜欢使用以下方式构建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;
  }

0 个答案:

没有答案