颤振:无法使用QCF_BSML字体的十六进制值显示正确的单词



在我的flutter应用程序中,我使用qcf_bsml字体,我必须生成十六进制值才能在字体文件中显示相应的单词。为此,我用这个方程:(64396 + Id>= 64434) ?64429 + chapterId: 64396 + Id

我使用这个函数将上面的结果转换为十六进制值:

calculatehex(){
final myInteger = (64396 + 1 >= 64434) ? 64429 + 1 : 64396 + 1; //Id is 1: result 64397
final hexString = myInteger.toRadixString(16);
final paddedString = hexString.padLeft(4, '0');
uppercaseString = paddedString.toUpperCase();
print(uppercaseString); //displays correct hex value in console :FB8D

}

问题是我只能硬编码文本字段中的十六进制值以显示正确的单词。例如:

new  Text('u{FB8D}',textDirection: TextDirection.rtl,
style:TextStyle(fontSize:30.0, fontWeight: FontWeight.w100,fontFamily: 'QCF'),
textAlign:TextAlign.center ), // works fine

但是如果我使用变量名来显示文本,它会显示错误的单词。

new  Text(uppercaseString,textDirection: TextDirection.rtl,
style:TextStyle(fontSize:30.0, fontWeight: FontWeight.w100,fontFamily: 'QCF'),
textAlign:TextAlign.center ), // not showing correct word

我尝试像这样连接字符串,但仍然不能正常工作

new  Text(r'u{'+uppercaseString+'}',textDirection: TextDirection.rtl,
style:TextStyle(fontSize:30.0, fontWeight: FontWeight.w100,fontFamily: 'QCF'),
textAlign:TextAlign.center ),

请帮助我理解为什么它显示正确的单词与硬编码值与'u',而不是与变量。谢谢你

我通过使用String.fromCharCode(int.parse()) &在代码中进行以下更改:

uppercaseString = paddedString.toUpperCase();
finalhexString ='0x$uppercaseString';

:

new  Text(String.fromCharCode(int.parse(finalhexString)),textDirection: TextDirection.rtl,
style:TextStyle(fontSize:30.0, fontWeight: FontWeight.w100,fontFamily: 'QCF'),
textAlign:TextAlign.center ),

最新更新