Flutter 如何在Flatter中将键盘上的拉丁字母转换为Thana Unicode?

Flutter 如何在Flatter中将键盘上的拉丁字母转换为Thana Unicode?,flutter,Flutter,我正在用我的母语flatter构建一个应用程序,但是,我的语言(在马尔代夫使用的Dhivehi)在flatter本地化包中不受支持 我曾尝试使用本地化包将其添加为一种新语言,但未能成功 在我的应用程序中有一个文本字段,用户必须在其中键入Dhivehi字母(Thaana),以便在应用程序中搜索内容。如何在颤振应用程序中将键盘上的拉丁字母转换为?您可以将拉丁字母转换为字母,也可以创建自己的自定义键盘 将拉丁语转换为Thaana 您可以使用TextField的onChanged参数获取当前输入,然后使

我正在用我的母语flatter构建一个应用程序,但是,我的语言(在马尔代夫使用的Dhivehi)在flatter本地化包中不受支持

我曾尝试使用本地化包将其添加为一种新语言,但未能成功


在我的应用程序中有一个文本字段,用户必须在其中键入Dhivehi字母(Thaana),以便在应用程序中搜索内容。如何在颤振应用程序中将键盘上的拉丁字母转换为?

您可以将拉丁字母转换为字母,也可以创建自己的自定义键盘

将拉丁语转换为Thaana 您可以使用
TextField
onChanged
参数获取当前输入,然后使用带有
Map
switch
语句的循环将拉丁文本转换为Thaana

这是一个粗略的例子:

String\u拉丁语tothaana(String拉丁语文本){
final thaana=StringBuffer();
for(拉丁语文本中的var codeUnit.codeUnits){
final latinChar=String.fromCharCode(codeUnit);
如果(拉丁字符=='a'){
塔阿纳。写(‘އަ’‎');
}else if(拉丁字符=='b'){
Thana.写('1924;‎');
}
}
返回thaana.toString();
} 
使用一个长的if-else链肯定不是最好的方法,但它显示了一种开始的方法。尽管这种特殊的方法不能很好地处理双字母组合

另一种方法可能是执行搜索和替换:

String\u拉丁语tothaana(String拉丁语文本){
拉丁文
.replaceAll('aa'、'އާ')
.replaceAll('a'、'އަ'‎')
.replaceAll('b'、'ބ');
}
只要你先换双打再换单打就行了

自定义键盘 或者,您可以创建一个应用程序内键盘,其中包含所需的字符和布局。您可以查看蒙古语键盘作为参考


如果您只想在
TextField
有焦点时显示键盘,您可以监听焦点的变化。请参阅。

谢谢,您能告诉我更多关于将拉丁语转换为Thaana的信息吗?我已经尝试实现了一个自定义键盘,问题是现在它总是显示在屏幕上,只有在单击TextField时,我如何才能调用键盘?