更新:
2022.4月, 看到评论区说有人不能用, 但有的人可以,我重新试了下,
flutter 2.10.1版本, 还是可以用的
2021年9月 ,
我的 Textfield 输入文字后光标 会自动跳到最前面,
尝试了许多网络的教程都不行,
最终自己修改了多次 , 终于解决了
var _textController = TextEditingController();
void initState() {
super.initState();
_textController.text = **** ;
TextField(
controller: _textController,
autofocus: false,
onChanged: (val) {
setState(() {
_textController.value = TextEditingValue(
text: val,
selection: TextSelection.fromPosition(TextPosition(
affinity: TextAffinity.downstream,
offset: val.length)));
});
在flutter开发中,加载某一段文字后需要对该文字进行更改的时候,使用controller设置默认值,这个时候光标会在文字的最前面,设置selection改变光标位置到最后,但是在编辑的时候删除以前的文字中的某个位置的字符光标会返回到文段末尾。
解决办法:1,设置controller
controller: TextEditingController
.fromValu...
Flutter TextField 是一个文本输入框,可以结合使用 TextEditingController 来获取输入框中的内容以及设置 TextField 中默认显示的内容
TextEditingController _textEditingController = new TextEditingController();
TextField(
controller: _textEditingController,
一般我们设置默认显示的内容时可以这样
_textEdi
TextEditingController controller = TextEditingController.fromValue(TextEditingValue(
// 设置内容
text: startWeight,
// 保持光标在最后
selection: TextSelection.fromPosition(TextPosit...
urltf.selection = TextSelection.fromPosition(TextPosition(offset:urltf.text.length));
使用了Provider + 输入框的形式,当输入框的数据都输入时,提交按钮显示可用,否则不可点击。
定义了一个Model用于保存是否可点击状态
class StatusModel extends ChangNotifier {
bool _canSubmit = false;
bool get canSubmit = _canSubmit;
set canSubmit(bool isCansubmit) {
if (_canSubmit == isCansubmit) {
在flutter中当使用localizationsDelegates国际化之后,TextField输入框的光标出现了偏移错位的情况
只需要在style中加入textBaseline:TextBaseline.alphabetic就可以解决光标错位问题
第一种:在main.dart里全局修改(推荐)
theme: ThemeData(
textTheme: TextTheme(subhead: TextStyle(textBaseline: TextBaseline.alphabetic))
第二种:在文件中单独修改
TextField(
style: TextStyle(textBaseline: TextBaseline.alphabetic),
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular
TextField(
//设置默认值,光标在文字最后
controller: TextEditingController.fromValue(TextEditingValue(
text: _strRepairCloudInfo,
selection: TextSelection.fromPosition(TextPosition(