在按钮单击中的 TextField 中添加文本

Add Text in TextField in button click in flutter

我想在单击我的按钮时将文本添加到文本字段中,但问题是它是在文本字段值的末尾添加文本我想在用户想要在文本字段中间或任何位置添加文本的地方添加文本。 . 我试试 :

  TextEditingController symbolTextField = TextEditingController();

  symbolTextField.text =
                                symbolTextField.text + items[index];

但我的项目值是添加在文本字段值的末尾

example video:

利用controller.selection,我为你创建了一个例子:

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController controller;

  @override
  void initState() {
    super.initState();
    controller = TextEditingController();
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Expanded(
              child: TextField(
                controller: controller,
              ),
            ),
            ElevatedButton(
              onPressed: () => insert("SSS"),
              child: Text('Add "SSS"'),
            ),
          ],
        ),
      ),
    );
  }

  void insert(String content) {
    var text = controller.text;
    var pos = controller.selection.start;
    controller.value = TextEditingValue(
      text: text.substring(0, pos) + content + text.substring(pos),
      selection: TextSelection.collapsed(offset: pos + content.length),
    );
  }
}