【问题标题】:Flutter global material localizations and initialize date formatting not working togetherFlutter 全局材料本地化和初始化日期格式无法协同工作
【发布时间】:2019-02-14 10:16:58
【问题描述】:

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

  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 有多重要?

【问题讨论】:

    标签: localization dart flutter


    【解决方案1】:

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

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

    注意缩进。

    【讨论】:

    • 可能还得把这个导入main.dart:import 'package:flutter_localizations/flutter_localizations.dart';
    • 是yaml,当然缩进很重要:)
    【解决方案2】:

    我也遇到过这个问题,玩了一会儿后,发现在使用 Material 本地化时,如果您不指定支持的语言环境,它似乎默认为美国。

    添加以下受支持的语言环境允许显示英国日期格式而不是美国日期格式。

            localizationsDelegates: [
              const DemoLocalizationsDelegate(),
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
            ],
            supportedLocales: [
              const Locale('en', 'US'), // English US
              const Locale('en', 'GB'), // English UK
              // ... other locales the app supports
            ],
    

    我不必显式初始化 DateFormat 类,因为 Material 似乎也可以处理这个问题。

    【讨论】:

      猜你喜欢
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2021-08-29
      相关资源
      最近更新 更多