我需要关注刚刚创建的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();
},