Почему мой курсор текстового поля отображается в начальной позиции существующего текста при перефокусировке
Почему курсор появляется в начале существующего текста, а не в позиции, где пользователь нажимает, когда я повторно редактирую свое текстовое поле. Это происходит, когда вы расфокусируете текстовое поле, а затем снова сфокусируете его.
Пример кода:
class Mypage extends StatelessWidget {
const Mypage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextField(
controller: TextEditingController()..text = 'Existing Text Here',
),
TextButton(
onPressed: () {
FocusScope.of(context).unfocus();
},
child: Text('Unfocus'))
],
),
),
);
}
}
1 ответ
По умолчанию используется
TextEditingController
без установки
selection
свойство, будет в первом символе / текстовом значении. Вы можете попробовать что-то вроде этого:
String textValue = 'Existing Text Here';
TextField(
controller: TextEditingController()..value = TextEditingValue(
text: textValue,
selection: TextSelection.fromPosition(
TextPosition(offset: textValue.length))
)
),