我需要一个文本字段,改变其方向的基础上,用户输入。
例如,我有一个获取用户输入的文本字段,但此输入有时可能是从左到右方向的英语文本,有时是从右到左方向的阿拉伯语文本。我希望文本字段方向根据输入语言方向进行更改
我拥有的
- 假设我有一个普通的文本字段
class MyDynamicTextField extends StatelessWidget {
const MyDynamicTextField({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 40),
child: TextField(),
),
),
);
}
}
我需要什么
如何模仿WhatsApp聊天文本域或Chrome文本域的文本方向行为,同时输入不同语言和文本方向的文本?
例如:文本字段的文本方向变化取决于用户输入语言(在Chrome中)
2条答案
按热度按时间bpsygsoo1#
解决方案是根据第一个输入字符更改文本方向
创建一个函数,该函数使用字符的代码单元(utf-16)识别从右到左的字符,并返回一个表示输入语言文本方向的
TextDirection
现在将
TextField
Package 在ValueListenableBuilder<TextDirection>
中,并在更改文本字段中的文本时更改文本方向:4nkexdtk2#
存在确定文本方向的内置函数。