颤振主要方法中的上下文

时间:2020-02-08 18:10:57

标签: android flutter dart

我希望我的应用在显示第一页之前先加载所有本地化字符串。要获取翻译后的字符串,请使用以下说明: MyLocalizations.of(context).trans('key')

在所有其他页面上都有效,但在main上却无效。我想在不提供上下文变量的情况下使用本地化字符串。我该怎么办?

谢谢!

编辑: 我需要执行此操作,因为我有一个包含翻译的变量列表,希望它们被初始化一次。如果我将它们放在build或didupdatewidget中,它们将被多次初始化。

1 个答案:

答案 0 :(得分:0)

这是我如何解决此问题的幼稚方式。

伪代码:

@override
void initState() {
  SchedulerBinding.instance.addPostFrameCallback((_) {
    initializeVarWithTranslation(context);       // the initialization with translation
  });
  super.initState();
}

@override
  Widget build(BuildContext context) {
  if(varWithTranslation==null)
     return SizedBox();    //If it yet is not initialized I show nothing or a splashscreen
  return Scaffold( ... );  //My page
}