Как в TextFormField узнать позицию курсора?
При ошибочном вводе мне нужно оставлять курсор на том же месте, а он все время возвращается в начало строки. Поэтому перед вводом я хочу сохранять позицию курсора, и при ошибке возвращать позицию на сохраненное место. Как получить позицию курсора?
Ответы (1 шт):
Автор решения: Лакшми
→ Ссылка
Придумала такое решение:
onChanged: (String text)
{
var textDouble = double.tryParse(text);
var selection = _controller.selection;//Сохраняем текущую позицию курсора
if (textDouble != null)
{
if (textDouble > 1000)//Ошибочный ввод
{
_controller.text = oldText;//Возвращаем старое значение
_controller.selection = TextSelection.fromPosition(
TextPosition(offset: selection.baseOffset - 1));//Оставляем курсор на сохраненном месте
return;
}
_controller.selection = TextSelection.fromPosition(
TextPosition(offset: _controller.text.length));
oldText = _controller.text;//Пересохраняем старое значение
}
}