0

我想使用 Dart 代码动态设置特定容器的子小部件,特别是在按下按钮时。我应该从哪里开始完成这项工作?我已经探索过使用 PageView,但这并不是我真正想要的。

如果我是 Web 开发者,我可以很容易地通过它的 ID 来编辑一个元素。是否有相当于 HTML ID 的 Flutter?控制器似乎在这里受到限制。

4

2 回答 2

0

尝试这个

class MyHomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyHomePageState();
  }
}

class _MyHomePageState extends State<MyHomePage> {
  Widget _dynamicWidget = FlutterLogo();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            _dynamicWidget,
            FlatButton(
                onPressed: () {
                  setState(() {
                    _dynamicWidget = Container(
                      color: Colors.red,
                      width: 50,
                      height: 50,
                    );
                  });
                },
                child: Text('Change')),
          ],
        ),
      ),
    );
  }
}
于 2020-09-22T07:43:49.273 回答
0

Flutter 并不是这样工作的。Flutter 和 React 一样,是一种声明式环境,而不是命令式环境。小部件树是从状态构建的,因此,树中较高的小部件不知道,甚至不关心它的孩子。

https://flutter.dev/docs/get-started/flutter-for/declarative

https://flutter.dev/docs/get-started/flutter-for/web-devs

于 2020-09-22T03:14:06.030 回答