如何解决在按钮单击颤动中的 TextField 中添加文本
我想通过单击我的按钮将文本添加到文本字段中,但问题是它在文本字段值的末尾添加文本我想在用户想要在文本字段中间或任何地方添加文本的地方添加文本.. 我试试:
TextEditingController symbolTextField = TextEditingController();
symbolTextField.text =
symbolTextField.text + items[index];
但我的项目值添加到文本字段值的末尾
解决方法
利用controller.selection
,我为您创建了一个示例:
class _MyHomePageState extends State<MyHomePage> {
TextEditingController controller;
@override
void initState() {
super.initState();
controller = TextEditingController();
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),),body: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Expanded(
child: TextField(
controller: controller,ElevatedButton(
onPressed: () => insert("SSS"),child: Text('Add "SSS"'),],);
}
void insert(String content) {
var text = controller.text;
var pos = controller.selection.start;
controller.value = TextEditingValue(
text: text.substring(0,pos) + content + text.substring(pos),selection: TextSelection.collapsed(offset: pos + content.length),);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。