首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StatelessWidget中的Localizations.of返回null

StatelessWidget中的Localizations.of返回null
EN

Stack Overflow用户
提问于 2018-06-29 13:33:02
回答 2查看 2.7K关注 0票数 17

正如标题所说,如果小部件类是从StatelessWidget扩展而来的

代码语言:javascript
复制
Localizations.of<MaterialLocalizations>(context, MaterialLocalizations);

会返回null有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-04-21 16:45:32

也有同样的问题。在flutter存储库中有一个开放的github issue。对我来说,唯一能解决这个问题的是创建一个独立的小部件,如下所示:

代码语言:javascript
复制
@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(...)),

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

票数 3
EN

Stack Overflow用户

发布于 2020-05-27 16:19:07

如果你从外部的函数调用它,它会导致问题,因为它不能获得正确的上下文。

代码语言:javascript
复制
Widget build(BuildContext context) {}

可以通过以下方式处理此问题

  • transfer context如果你调用一个函数返回小部件,
  • 在小部件外部声明语言变量,并在构建后重置它们。
  • 将小部件写成一个单独的小部件。如果这些方法仍然不起作用。请添加代码的更多详细信息。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51094878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档