Flutter:关注刚刚添加的TextField



我需要关注刚刚创建的TextField。

示例代码如下:https://dartpad.dev/?id=1c84c70d956efde95fa12820c9afa4aa

class _TestPageState extends State<TestPage> {
List<TextEditingController> controllers = [
TextEditingController(text: 'field 0')
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: ListView.builder(
itemCount: controllers.length,
itemBuilder: (context, index) => TextField(
controller: controllers[index],
autofocus: index == controllers.length - 1)),
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
onPressed: () {
setState(() {
controllers.add(
TextEditingController(text: 'field ${controllers.length}'));
});
},
),
);
}
}

在飞镖键盘上,它工作得很好,但在真正的设备上却不行。

为什么它在设备上不起作用,以及如何实现这一点,有什么建议吗?谢谢

在这种情况下,您还可以创建List<FocusNode> _focusNodes = [];(根据列表添加一个FocusNode(。

然后在最后一个焦点节点上添加并请求焦点。

onPressed: () {
setState(() {
controllers.add(
TextEditingController(text: 'field ${controllers.length}'));
_focusNodes.add(FocusNode());
});
_focusNodes.last.requestFocus();
},

相关内容

  • 没有找到相关文章

最新更新