我需要關注剛剛創建的 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}'));
});
},
),
);
}
}
在 dartpad 中它可以正常作業,但不能在真實設備上運行。
任何建議為什么它在設備上不起作用以及如何實作?謝謝。
uj5u.com熱心網友回復:
在這種情況下,您還可以創建List<FocusNode> _focusNodes = [];, (FocusNode根據串列添加一個)。
然后在最后一個焦點節點上添加并請求焦點。
onPressed: () {
setState(() {
controllers.add(
TextEditingController(text: 'field ${controllers.length}'));
_focusNodes.add(FocusNode());
});
_focusNodes.last.requestFocus();
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/374702.html
