Flutter 在 List<Widget> 中查找 Widget

标签 flutter dart

我有一个小部件列表:

List<Widget> widgetList = List<Widget>();

widgetList.add(WidgetA());
widgetList.add(WidgetB());
widgetList.add(WidgetC());
widgetList.add(WidgetD());

现在我想在列表中找到 WidgetB:
Widget activeWidget = widgetList.firstWhere((x) => x.key == ??);

我正在组装 “ key ” property 是我应该用来唯一标识每个小部件的,但我不确定要使用什么类型的 key 或如何通过 key 查找,也不知道这是否是正确的方法。

任何信息都会有所帮助,谢谢。

最佳答案

您需要为每个小部件传递 key :

var keyA = UniqueKey();
var keyB = UniqueKey();
var keyC = UniqueKey();
var keyD = UniqueKey();
List<Widget> widgetList = List<Widget>();

widgetList.add(WidgetA(key: keyA));
widgetList.add(WidgetB(key: keyB));
widgetList.add(WidgetC(key: keyC));
widgetList.add(WidgetD(key: keyD));

现在您可以搜索:

Widget activeWidget = widgetList.firstWhere((x) => x.key == keyB);

关于Flutter 在 List<Widget> 中查找 Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629500/

相关文章:

发生 Flutter 错误 : The position being added ($position) has a smaller timestamp ($time) than its predecessor: $previousPoint

flutter - 为共享首选项用户名定义变量时出现问题

android - 无法访问类 'com.google.common.util.concurrent.ListenableFuture' 。检查模块类路径是否缺少或冲突的依赖项

dart - 自定义组件属性类型

flutter - 点击键盘上的“完成”会清除 flutter 中的文本

flutter - 无法更新Text Flutter Dart

flutter - 如何使 Radio Widget 看起来像一个按钮

Flutter - Transform.scale 小部件的大小在其子级缩放时不会改变

unit-testing - 一张一张地运行Flutter Package单元测试

firebase - 为什么 Firebase 动态链接总是空的?