文本字段上的颤动光标位置

时间:2021-01-10 04:09:37

标签: flutter

我想在光标位置后附加文本。例如:当用户将文本字段的光标移动到中间时。我想获取文本上的光标位置,然后在光标位置后添加文本。

我尝试过使用文本编辑控制器,但我无法到达光标位置。如何检测文本字段上的光标位置?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题;

// Get cursor current position
                    var cursorPos =
                        _textEditController.selection.base.offset;

                    // Right text of cursor position
                    String suffixText =
                        _textEditController.text.substring(cursorPos);

                    // Add new text on cursor position
                    String specialChars = ' text_1 ';
                    int length = specialChars.length;
                    
                    // Get the left text of cursor
                    String prefixText =
                        _textEditController.text.substring(0, cursorPos);

                    _textEditController.text =
                        prefixText + specialChars + suffixText;
                    
                    // Cursor move to end of added text
                    _textEditController.selection = TextSelection(
                      baseOffset: cursorPos + length,
                      extentOffset: cursorPos + length,
                    );