Flutter TextField 光标奇怪的行为
Flutter TextField cursor strange behaviour
我的 TextField 有以下问题:
光标最初漂浮在使用 TextEditingController
设置的文本上方 TextField
的中间 - 当我尝试输入内容时没有任何反应。您必须先单击 TextField
并将光标定位在末尾,然后才能输入内容。当不使用 TextEditingController
时,这个问题不会以某种方式发生。
TextField(
autofocus: true,
textAlign: TextAlign.center,
controller: tec,
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
keyboardType: TextInputType.number,
onChanged: (value) {
...
},
),
但是我需要 TextEditingController
来初始设置 TextField
的文本。
这特别烦人,因为您经常不明白为什么不能输入某些内容,也没有意识到必须放置光标,因为光标已经在 TextField
.
中
是否有任何解决办法,或者例如手动将光标放在文本末尾的方法?
[✓] Flutter (Channel stable, 3.0.1, on Arch Linux 5.17.7-arch1-1, locale
de_DE.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability
• No issues found!
使用此代码段将光标置于末尾:
controller.text = initialValue; //set your initial data
controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));
我的 TextField 有以下问题:
光标最初漂浮在使用 TextEditingController
设置的文本上方 TextField
的中间 - 当我尝试输入内容时没有任何反应。您必须先单击 TextField
并将光标定位在末尾,然后才能输入内容。当不使用 TextEditingController
时,这个问题不会以某种方式发生。
TextField(
autofocus: true,
textAlign: TextAlign.center,
controller: tec,
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
keyboardType: TextInputType.number,
onChanged: (value) {
...
},
),
但是我需要 TextEditingController
来初始设置 TextField
的文本。
这特别烦人,因为您经常不明白为什么不能输入某些内容,也没有意识到必须放置光标,因为光标已经在 TextField
.
是否有任何解决办法,或者例如手动将光标放在文本末尾的方法?
[✓] Flutter (Channel stable, 3.0.1, on Arch Linux 5.17.7-arch1-1, locale
de_DE.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2021.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability
• No issues found!
使用此代码段将光标置于末尾:
controller.text = initialValue; //set your initial data
controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));