flutter日期选择国际化支持

支持中文的日期选择,来自AI生成。亲测好用。

pubspec.yaml

yaml 复制代码
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations: # 添加这个
    sdk: flutter # 添加这个
  intl: ^0.20.2 # 添加这个

main.dart

dart 复制代码
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; // 导入本地化包

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 国际化配置
      localizationsDelegates: const [
        // 提供 Material 组件的本地化字符串(如按钮、对话框等)
        GlobalMaterialLocalizations.delegate,
        // 提供 Cupertino 风格组件的本地化字符串
        GlobalCupertinoLocalizations.delegate,
        // 提供通用的文本方向本地化
        GlobalWidgetsLocalizations.delegate,
      ],
      // 声明应用支持的语言
      supportedLocales: const [
        Locale('en', ''), // English
        Locale('zh', 'CN'), // Chinese
      ],
      title: 'Flutter 日期选择器',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  DateTime _selectedDate = DateTime.now();

  Future<void> _selectDate(BuildContext context) async {
    final DateTime? picked = await showDatePicker(
      context: context,
      initialDate: _selectedDate,
      firstDate: DateTime(2000),
      lastDate: DateTime(2101),
    );
    if (picked != null && picked != _selectedDate) {
      setState(() {
        _selectedDate = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('中文日期选择器示例'),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Text(
              "您选择的日期是: ${_selectedDate.year}年${_selectedDate.month}月${_selectedDate.day}日",
              style: const TextStyle(fontSize: 18),
            ),
            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: () => _selectDate(context),
              child: const Text('选择日期'),
            ),
          ],
        ),
      ),
    );
  }
}
相关推荐
xlq223221 分钟前
46.线程池
linux·开发语言
LF男男4 分钟前
Action- C# 内置的委托类型
java·开发语言·c#
记录无知岁月4 分钟前
【C/C++】头文件包含问题分析
c语言·开发语言·c++
神仙别闹13 分钟前
基于Python实现(控制台)个人信息系统
开发语言·python
HoneyMoose19 分钟前
Discourse 更加依赖 tag 的扁平化管理
开发语言
Hello eveybody24 分钟前
介绍最大公因数和最小公约数(Python)
开发语言·python
谭欣辰25 分钟前
C++ 堆 的基础与 二叉堆详解
开发语言·c++
Ulyanov30 分钟前
《PySide6 GUI开发指南:QML核心与实践》 第十篇:综合实战——构建完整的跨平台个人管理应用
开发语言·python·qt·ui·交互·qml·雷达电子战系统仿真
ian4u31 分钟前
车载 Android C++ 完整技能路线:从基础到进阶
android·开发语言·c++
lly20240631 分钟前
JSP 过滤器
开发语言