Localizations.of 从 StatelessWidget 返回 null

Dec*_*yFx 17 flutter

正如标题所说,如果小部件类是从 StatelessWidget

Localizations.of<MaterialLocalizations>(context, MaterialLocalizations);
Run Code Online (Sandbox Code Playgroud)

将返回 null 任何想法?

err*_*337 5

有同样的问题。flutter 存储库中有一个开放的github 问题。唯一为我解决这个问题的是创建一个单独的小部件,如下所示:

@override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Flutter Demo',
        localizationsDelegates: [...],
        supportedLocales: ..,
        locale: ...,
        home: MyAppPage()); // separat MyAppPage instead of putting widget code with translations here
  }

// MyAppPage
class MyAppPage extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        ...
        body: Center(
            child: Text(AppTranslations.of(context).translate(...)),

Run Code Online (Sandbox Code Playgroud)

如果这不能解决您的问题,我们可能需要查看更多代码:)!