Flutter区分小部件的多个实例

问题描述 投票:1回答:1

我正在编写一个使用自定义窗口小部件的多个实例的应用程序,并且我想调用特定实例的方法。

代码示例:

Widget build(BuildContext context) {
        return Scaffold(
            drawer: new DrawerOnly(storage: CounterStorage()),
            appBar: AppBar(),
            body: Stack(
                children: <Widget>[
                    new Center(
                        child: new Object3D(

                        ),
                    ),
                    new Positioned(
                        top: 20,
                        left: 0,
                        child: new Object3D(

                        ),
                    ),
                    new Positioned(
                        top: 20,
                        left: 100,
                        child: new Object3D(

                        ),
                    ),
                    new Positioned(
                        top: 120,
                        left: 0,
                        child: new Object3D(

                        ),
                    ),
                ],
            )
        );
    }

    mymethod() {
        //call first Object3D's method from here
    }
}

我如何从其父级调用第一个Object3D的方法?

flutter dart
1个回答
0
投票

您将孩子存储在这样的列表中:

final object3Ds = List<Object3D>.generate(4, (_) => Object3D());

现在,您将该引用存储在父级中,然后可以在build方法中传递该列表的元素:

...
Stack(
  children: <Widget>[
    Positioned(
      child: object3Ds[0],
      ...

最后,您现在可以使用创建的列表访问对象:

object3Ds[0].callMethod();
© www.soinside.com 2019 - 2024. All rights reserved.