如何解决Flutter - 无法在不点击文本字段的情况下编辑文本
TextField(
inputFormatters: [FilteringTextInputFormatter.digitsOnly],controller: _amountController,autofocus: true,keyboardType: TextInputType.number,decoration: Inputdecoration(
hintText: '0',hintStyle: TextStyle(color: Painter.gray500),border: InputBorder.none,prefixIcon: Padding(
padding: const EdgeInsets.only(right: 8.0),child: SvgPicture.asset(icon),),prefixIconConstraints: BoxConstraints(
maxHeight: 20,maxWidth: 20,
这是在我用来添加数据的底部工作表中。我还想启用编辑,因此点击底部工作表加载具有现有值的 TextField(如果有)。为此,_amountController
被初始化为:
AddDataSheet({
required this.title,required this.subtitle,this.amount,}) {
_amountController = TextEditingController.fromValue(
amount == null
? TextEditingValue.empty
: TextEditingValue(
text: amount.toString()
),);
}
问题是,当 TextField 加载时,它带有焦点,但在我点击它之前我无法编辑它。我试着添加这个,
selection: TextSelection.fromPosition(
TextPosition(offset: amount.toString().length),
到控制器初始化但它不起作用。
如何拥有 TextField 以便我不必点击它即可开始编辑值?
解决方法
我认为你需要使用 focusnode 属性
https://api.flutter.dev/flutter/material/TextField/focusNode.html
另请参考这些答案 https://stackoverflow.com/a/49912570/9414608 https://stackoverflow.com/a/60510624/9414608
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。