- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 the official Flutter localization plugin 找到本地化程序麻烦。要显示本地化字符串,我必须调用 AppLocalizations.of(context).myAppTitle
- 在包含大量本地化字符串的巨大嵌套 Widget 树中,这不是很流畅或容易浏览。更不用说它看起来很丑了。
有没有办法让使用更好?例如,我可以使用一个全局变量或一个带有 AppLocalizations
实例成员的静态类来使访问更容易吗?例如声明一个顶级 AppLocalizations
变量
// Somewhere in the global scope
AppLocalizations l;
// main.dart
class _MyAppState extends State<MyApp>{
@override
void initState() {
super.initState();
getLocaleSomehow().then((locale){
l = Localization(locale);
setState((){});
});
}
}
然后我可以简单地调用
Text(l.myAppTitle)
所以本质上我要问的是“不调用 AppLocalizations.of(context)
有什么危险和/或缺点?”
如果我真的需要使用 .of(BuildContext)
方法来访问 AppLocalizations
实例 - 我至少可以将它存储在我的 StatefulWidget
?我在想类似的事情
class DetailsPage extends StatefulWidget{
AppLocalizations _l;
@override
Widget build(BuildContext context) {
_l = AppLocalizations.of(context);
// ... build widgets ...
}
}
或者有没有其他方法可以让本地化不那么麻烦?
最佳答案
是的,这是需要的。您可以解决它,但这是个坏主意。
原因是Localization.of<T>(context, T)
可能会随着时间的推移而更新。它确实存在的一些情况是:
如果您没有正确调用 Localization.of
在 build 中,那么在这些情况下,您的 UI 可能无法正确更新。
关于flutter - 无需每次调用 `of(context)` 的 AppLocalizations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56675248/
题 我正在使用 AppLocalizations.of(context).myString在我的 null 安全 flutter 应用程序中国际化字符串。 我的 IDE 告诉我 AppLocaliza
我最近安装了Microsoft SQL Server Management Studio 2017.5,以便连接到某些Azure资源。尝试连接到任何数据库(包括我的本地主机)时,出现错误消息: 'Co
我使用 the official Flutter localization plugin 找到本地化程序麻烦。要显示本地化字符串,我必须调用 AppLocalizations.of(context).
我的应用程序在 android 上运行良好,但是当我尝试在 iOS 上启动它时,我遇到了一个巨大的错误,并且主要提到了这一点 The getter 'AppLocalizations' isn't d
现在我在使用 Flutter 的应用程序中工作,我有 4 种不同的语言,我使用 json(arb 文件)进行本地化(翻译) 我需要传递不同的字符串值,应用程序使用 API 获取它们,如下面的示例所示
我是一名优秀的程序员,十分优秀!