首页 > 解决方案 > Flutter 全局材料本地化和初始化日期格式无法协同工作

问题描述

我在颤振应用程序中使用本地化,但也想使用初始化日期格式来本地化日期格式。我的主要看起来像这样......

  void main() {
    runApp(new MaterialApp(
    supportedLocales:
    [const Locale('en', 'US'),
    const Locale('en', 'AU')],
    localizationsDelegates: [
      const DemoLocalizationsDelegate(),
      GlobalMaterialLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate
    ],
    home: new ThirdPageWidget(),
    navigatorObservers: [routeObserver],
    ));
 }

此外,我在这样的有状态小部件中有一个 initializeDateFormatting ...

@override
void initState() {
   super.initState();
   initializeDateFormatting().then((_) {
      dateFormat = new DateFormat.yMd('en_AU');
      print(dateFormat.format(DateTime.now()));
});

现在,当语言环境为 en_AU 时,日期格式为月/日/年美式风格,但是当我删除这行代码时

GlobalMaterialLocalizations.delegate,

日期正确显示日/月/年。有谁知道我能做些什么来解决这个问题?拥有 GlobalMaterialLocalizations.delegate 有多重要?

标签: localizationdartflutter

解决方案


我通过在pubspec.yaml 中添加以下依赖项解决了这个问题:

dependencies:
  ...
  flutter_localizations:
    sdk: flutter
  ...

小心缩进。


推荐阅读