flutter - 颤振,如何复制多步输入的子范围
问题描述
从 TextField 复制文本时,在多步输入(组合模式)的情况下,我应该如何复制子范围?
例如下面的代码
import 'package:flutter/material.dart';
class SampleWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: HomeWidget());
}
}
class HomeWidget extends StatelessWidget {
TextEditingController _controller1 = TextEditingController();
FocusNode _focusNode1 = FocusNode();
TextEditingController _controller2 = TextEditingController();
FocusNode _focusNode2 = FocusNode();
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: Column(
children: [
TextField(
focusNode: _focusNode1,
controller: _controller1,
),
TextField(
focusNode: _focusNode2,
controller: _controller2,
),
RaisedButton(
child: Text("copy text"),
onPressed: () {
if(_focusNode1.hasFocus) {
_controller2.text = _controller1.text;
_focusNode1.unfocus();
_focusNode2.requestFocus();
} else {
_controller1.text = _controller2.text;
_focusNode2.unfocus();
_focusNode1.requestFocus();
}
}),
],
),
),
),
);
}
}
void main() {
runApp(SampleWidget());
}
可以在 TextField 中复制英文“abcd”文本。
但在多步输入(组合模式)的情况下,无法复制文本。
韩语是一种组合语言,这意味着“가”、“구”和“거”等字符通常可以写成“ㄱ”+“ㅏ”、“ㄱ”+“ㅜ”和“ㄱ”+“ㅓ” .
但是,代码移动到 'ㄱ' 之后的下一个字符范围。(我希望代码保留到 'ㄱ' 与 'ㅏ' 结合)
我怎么解决这个问题?
解决方案
推荐阅读
- angular - Angular HttpInterceptor 等待订阅的结果
- mysql - Return multiple selected value inside one query?
- json - 我们如何在我们的 Vue 应用程序中调用本地 json 文件?如果我们使用 Vue 的 CDN 链接
- android - Listview 不滚动 - 为什么会这样?
- apache-kafka - 卡夫卡经纪人优先
- groovy - Groovy 构建变量名
- node.js - Node.js 服务器不断返回 MaxListenersExceededWarning
- scala - 在Scala中以功能方式比较两个版本?
- java - .gradlew 在 WSL 上找不到证书 Debian Stretch
- servicestack - ServiceStack AutoQuery 合成字段