flutter - 在 Flutter 中单击按钮的 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),
);
}
}
推荐阅读
- r - 在 geom-smooth / ggplot2 / R 中自定义公式
- javascript - 在特定时间码开始任何嵌入式视频(iframe)?
- sql-server - T-SQL - 成功的 ORDER BY 与千位分隔符
- ansible - 如何在一定条件下在 Vagrantfile 中执行剧本?
- arrays - 数组中第二小的元素
- python - 打印字典中的元素时,打印命令中的 0 索引是什么?
- ios - SwiftUI Picker 手动触发扩展
- c - 重用悬空指针或空指针时出错(分段错误)
- c - 比较在 C 中划分为不同参数的两个字符串
- nginx - 会话亲和性 cookie 不再起作用(具有 Nginx 入口的 Kubernetes)