我正在将我的应用程序从Java(Android)转换为Flutter(Dart),我找不到从上下文或国家代码获取货币的方法。
Java代码:
String country = Locale.getDefault().getCountry();
String currency = Currency.getInstance(new Locale("", country)).getCurrencyCode();
Dart中的代码:
Locale locale = Localizations.localeOf(context);
String country = locale.countryCode;
7条答案
按热度按时间aor9mmx11#
intl软件包可以解决这个问题
llycmphe2#
如果您的应用支持用户的区域设置,则接受的答案确实有效,但如果您没有显式添加对用户区域设置的支持,则接受的答案无效。
相反,您可以使用
dart:io
包中的Platform.localeName
,它将采用设备本身的区域设置。例如:
bhmjp9jg3#
默认情况下,国家符号以美元为单位,要获取本地符号,请添加name属性,如下所示(对于尼日利亚- Naira):
hwazgwia4#
经过长时间的搜索,对这个问题的唯一解决办法,解决我的问题是使用一个字体,支持您的符号。
这是我的符号“”,支持它的字体是“Roboto”,你可以为你的文本指定一种字体,就像这样:
xzabzqsa5#
您可以使用currency_pickers获取货币代码,方法是向其提供用户国家代码。
aor9mmx16#
这非常简单,只需在google上搜索Country符号,然后添加文本小部件,如
Text( "₦20000", style: TextStyle( fontSize: 24.0, fontFamily: '' ), )
如果你不确定支持的字体系列,就不需要添加字体系列。
piwo6bdm7#
NumberFormat.simpleCurrency(locale:toString())只返回土耳其货币符号的TL;而不是实际的货币符号。
你为什么不直接说“”?
或者您可以选择使用Html(data:'')。你必须将flutter_html添加到pub spec.yaml中才能使用Html
两者都会给予你想要的。。