在Flutter

时间:2019-10-15 22:08:35

标签: flutter flutter-layout

我有一个对象List<Item>的列表,每个项目都有一个FocusNode,一个TextEditingController和一个id,但项目的数量是固定的:

class Item {
   String id;
   TextEditingController textController;
   FocusNode focusNode;
}

我在TextField中将每个项目显示为ListViewitems[0].textController中使用items[0].focusNodeTextField,依此类推。如何检测哪个TextField具有焦点?例如,如果正在编辑items[1]的第二个Textfield上的用户选项卡出现,并且键盘显示出来,它将触发一个函数,其行类似print(items[1].id)

1 个答案:

答案 0 :(得分:0)

您可以将监听器添加到FocusNodes中,如下所示:

items[1].focusNode.addListener(() {
  print(items[1].id);
});

请确保在initState()内执行此操作