如何独立设置位于 Flutter 中另一个字母上方的泰文字母的样式?
How to independently style a Thai letter positioned above another letter in Flutter?
我的设置:Flutter v1.17.4,Mac OS X 10.15.4,语言环境 en-US,Dart v2.8.4
在泰语中,元音可以出现在辅音的上方和下方。在我的泰语学习应用程序中,我想设置一个辅音与其关联的元音不同的样式。
利用Flutter的RichText和TextSpan,我差不多实现了。但是如下图所示,有一个问题。元音认为它缺少相关的辅音。结果,元音呈现为虚线圆圈,即它期望辅音所在的位置。辅音在前面的TextSpan.
如何让 Flutter 渲染这个泰语文本,使用不同风格的元音和辅音,并且没有红色虚线圆圈?
创建下图中字符的代码。
RichText thaiConsonantAndVowelAbove(){
return RichText(
text: TextSpan(
children: <TextSpan>[
TextSpan(text: "ง", style: TextStyle(color: Colors.white, fontSize: 100)),
TextSpan(text: "ู", style: TextStyle(color: Colors.red, fontSize: 100))
]
)
);
}
@override
Widget build(BuildContext context) {
return Row(children: <Widget>[Expanded(child: thaiConsonantAndVowelAbove(), flex: 1)]);
}
感谢dev001帮忙解决问题。我不知道泰语字符的一些低级样式需要泰语字体。在大多数情况下,泰语和非泰语字体都可以正确显示泰语字符。但是,似乎只有泰语字体才能正确呈现由多个 Flutter TextSpans 组成的泰语字符串,并且当该字符串在辅音和元音(或声调标记)之间拆分时,它必须出现在相同的 space作为辅音。
TLDR:
当您想要为泰语文本的每一部分设置样式时,请使用泰语字体。
如果 dev001 提交他们的评论作为答案,我会将其标记为正确。
Google 慷慨地免费提供了许多泰语字体:
https://fonts.google.com/?subset=thai
我的设置:Flutter v1.17.4,Mac OS X 10.15.4,语言环境 en-US,Dart v2.8.4
在泰语中,元音可以出现在辅音的上方和下方。在我的泰语学习应用程序中,我想设置一个辅音与其关联的元音不同的样式。
利用Flutter的RichText和TextSpan,我差不多实现了。但是如下图所示,有一个问题。元音认为它缺少相关的辅音。结果,元音呈现为虚线圆圈,即它期望辅音所在的位置。辅音在前面的TextSpan.
如何让 Flutter 渲染这个泰语文本,使用不同风格的元音和辅音,并且没有红色虚线圆圈?
创建下图中字符的代码。
RichText thaiConsonantAndVowelAbove(){
return RichText(
text: TextSpan(
children: <TextSpan>[
TextSpan(text: "ง", style: TextStyle(color: Colors.white, fontSize: 100)),
TextSpan(text: "ู", style: TextStyle(color: Colors.red, fontSize: 100))
]
)
);
}
@override
Widget build(BuildContext context) {
return Row(children: <Widget>[Expanded(child: thaiConsonantAndVowelAbove(), flex: 1)]);
}
感谢dev001帮忙解决问题。我不知道泰语字符的一些低级样式需要泰语字体。在大多数情况下,泰语和非泰语字体都可以正确显示泰语字符。但是,似乎只有泰语字体才能正确呈现由多个 Flutter TextSpans 组成的泰语字符串,并且当该字符串在辅音和元音(或声调标记)之间拆分时,它必须出现在相同的 space作为辅音。
TLDR: 当您想要为泰语文本的每一部分设置样式时,请使用泰语字体。
如果 dev001 提交他们的评论作为答案,我会将其标记为正确。
Google 慷慨地免费提供了许多泰语字体: https://fonts.google.com/?subset=thai