Flutter中showDatePickershowTimePicker国际化更改中文

showDatePicker&showTimePicker国际化

Flutter 中避免不了使用日期、时间选择器,这里我们使用官方showDatePickershowTimePicker

要想使得这两个组件为中文的先决条件为项目加入国际化(fluter_localizations)。

添加国际化

/pubspec.yaml中:

...
dependencies:
  flutter:
    sdk: fultter
  flutter_localizations: # 添加
    sdk: flutter         # 添加
...

/lib/main.dart中:

import 'package:flutter_localizations/flutter_localizations.dart'; // 添加

// MaterialApp中加入
...
localizationsDelegates: [
  GlobalMeterialLocalizations.delegate,
  GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
    const Locale('zh', 'CH'),
    const Locale('en', 'US'),
],
locale: const locale('zh'),
...

showDatePicker

默认使用MaterialApp设置中的。
showDatePicker提供了locale参数,如果有需要可以继续更改。

showTimePicker

默认使用MaterialApp设置中的。
showTimePicker没有提供locale参数,如果想改变语言可以使用:

await showTimePicker(
    context: context,
    initialTime: TimeOfDay.now(),
    builder: (BuildContext context, Widget child) {
        return Localizations(
            locale: const Locale('zh'),
            child: child,
            delegates: <LocalizationsDelegate>[
                GlobalMeterialLocalizations.delegate,
                GlobalWidgetsLocalizations.delegate,
            ]
        )
    }
)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理