我有一个小部件列表:
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” 属性,该属性是我用来唯一标识每个窗口小部件的属性,但是我不确定要使用哪种类型的密钥或如何通过该密钥来查找,也不知道这是正确的方法。
任何信息将有所帮助,谢谢。
最佳答案
您需要传递每个小部件的密钥:
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);