Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Flutter中使用flutter_cupertino_date_picker选择时间

Flutter中使用flutter_cupertino_date_picker选择时间

作者头像
越陌度阡
发布于 2022-05-06 07:00:09
发布于 2022-05-06 07:00:09
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

1. 安装插件

配置flutter_cupertino_date_picker。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  date_format: ^1.0.6
  flutter_cupertino_date_picker: ^1.0.26+2

在pubspec.yaml中配置保存后,在VS Code环境中会自动下载依赖包。

如果无法正常下载,执行 flutter pub get 。

2. 引入插件

在需要用到的该插件文件中引入插件包。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';

3. 使用插件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateTime _dateTime=DateTime.now();

// 显示时间的方法
void _showDatePicker(){

    DatePicker.showDatePicker(
        context,
        onMonthChangeStartWithFirstDate: true,

        // 如果报错提到 DateTimePickerTheme 有问题,点开这个类的原文件作如下修改。
        // 移除'with DiagnosticableMixin'或者将'DiagnosticableMixin'改成'Diagnosticable'.
        pickerTheme: DateTimePickerTheme(
            showTitle: true,
            confirm: Text('确认', style: TextStyle(color: Colors.red)),
            cancel: Text('取消',style:TextStyle(color:Colors.cyan))
        ),

        minDateTime: DateTime.parse("1970-01-01"),
        maxDateTime: DateTime.parse("2050-01-01"),

        initialDateTime: _dateTime,

        // 显示日期
        // dateFormat: "yyyy-MMMM-dd",
        
        // 显示日期与时间
        dateFormat:'yyyy年M月d日    EEE,H时:m分',  // show TimePicker
        pickerMode: DateTimePickerMode.datetime,  // show TimePicker


        locale: DateTimePickerLocale.zh_cn,

        onChange: (dateTime, List<int> index) {
            setState(() {
                // 初始及修改保存后的时间
                _dateTime = dateTime;
            });
        },
        onConfirm: (dateTime, List<int> index) {
            setState(() {
                // 初始及修改保存后的时间
                _dateTime = dateTime;
            });
        },
    );
    
}

4. 代码完整示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import 'package:flutter/material.dart';

// 引入第三方插件
import 'package:date_format/date_format.dart';
import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';

class DatePickerPage extends StatefulWidget {
    DatePickerPage({Key key}) : super(key: key);
    @override
    _DatePickerPageState createState() => _DatePickerPageState();
}

class _DatePickerPageState extends State<DatePickerPage> {

    DateTime _dateTime=DateTime.now();

    // 显示时间的方法
    void _showDatePicker(){

        DatePicker.showDatePicker(
            context,
            onMonthChangeStartWithFirstDate: true,

            // 如果报错提到 DateTimePickerTheme 有问题,点开这个类的原文件作如下修改。
            // 移除'with DiagnosticableMixin'或者将'DiagnosticableMixin'改成'Diagnosticable'.
            pickerTheme: DateTimePickerTheme(
                showTitle: true,
                confirm: Text('确认', style: TextStyle(color: Colors.red)),
                cancel: Text('取消',style:TextStyle(color:Colors.cyan))
            ),

            minDateTime: DateTime.parse("1970-01-01"),
            maxDateTime: DateTime.parse("2050-01-01"),

            initialDateTime: _dateTime,

            // 显示日期
            // dateFormat: "yyyy-MMMM-dd",
            
            // 显示日期与时间
            dateFormat:'yyyy年M月d日    EEE,H时:m分',  // show TimePicker
            pickerMode: DateTimePickerMode.datetime,  // show TimePicker


            locale: DateTimePickerLocale.zh_cn,

            onChange: (dateTime, List<int> index) {
                setState(() {
                    // 初始及修改保存后的时间
                    _dateTime = dateTime;
                });
            },
            onConfirm: (dateTime, List<int> index) {
                setState(() {
                    // 初始及修改保存后的时间
                    _dateTime = dateTime;
                });
            },
        );
        
    }

    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(title: Text("DatePicker")),
            body:Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                    Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                            // 添加点击水波纹效果
                            InkWell(
                                child:Row(
                                    children: <Widget>[
                                        Text("${formatDate(_dateTime,[yyyy,'年',mm,'月',dd,' ',HH,':',nn])}"),
                                        Icon(Icons.arrow_drop_down)
                                    ],
                                ),
                                onTap:_showDatePicker
                            )
                        ],
                    )
                ],
            ) 
        );
    }
}

效果图如下:

参考:https://github.com/dylanwuzh/flutter-cupertino-date-picker

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
18.Flutter学习之路日期和时间戳,以及日期组件
Flutter中获取当前日期可以使用DateTime.now()进行获取。now.millisecondsSinceEpoch可以获取到时间戳
易帜
2022/02/09
2.2K0
18.Flutter学习之路日期和时间戳,以及日期组件
Flutter中的日期、格式化日期、日期选择器组件在
所谓时间戳,是指自格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
拉维
2019/08/29
26.5K0
Flutter中的日期、格式化日期、日期选择器组件在
Flutter入门(五)
国际化方案http://bbs.itying.com/topic/5cfb2a12f322340b2c90e764
用户3112896
2019/12/30
9620
Flutter 时间选择器
1 win系统flutter开发环境安装教程: https://www.jianshu.com/p/152447bc8718
前端小tips
2021/11/23
1.8K0
Flutter 时间选择器
Flutter中使用flutter_html解析html文件
参考:https://pub.flutter-io.cn/packages/flutter_html
越陌度阡
2021/01/13
6.2K0
2025实战-Flutter3.27仿携程app实例|flutter3.x酒店预订
2025開年原创新作Flutter3.27+Dart3.6跨平台仿携程/飞猪旅行酒店app预订系统。
andy2018
2025/02/22
1310
2025实战-Flutter3.27仿携程app实例|flutter3.x酒店预订
Flutter 时间选择组件
在Flutter 应用开发过程中,或多或少的都会涉及到时间选择器相关的内容。Flutter默认提供了DatePicker日期选择器,如果对样式没有特殊的要求,那么可以使用它来进行时间的选择,默认的样式如下所示。
xiangzhihong
2022/11/30
3.7K0
Flutter lesson 8:输入框,时间日期选择
Flutter自带的 showDatePicker 和 showTimePicker 两个方法可以进行时间和日期的选择。
踏浪
2019/07/31
4.8K0
Flutter lesson 8:输入框,时间日期选择
Flutter中使用image_picker拍照并上传
https://pub.flutter-io.cn/packages/image_picker
越陌度阡
2021/01/29
5.9K0
Flutter中日期组件DatePicker及组件汉化
Flutter提供了DatePicker组件进行时间选择。 日期组件及时间组件代码示例: import 'package:flutter/material.dart'; // 第三方插件,需要提前配置 import 'package:date_format/date_format.dart'; class DatePickerPage extends StatefulWidget { DatePickerPage({Key key}) : super(key: key); @ov
越陌度阡
2021/01/05
1.5K0
Flutter中日期组件DatePicker及组件汉化
Flutter 父子组件互调方法
使用 GlobalKey:可以为子组件创建一个 GlobalKey 对象,通过该 GlobalKey 可以获取到子组件的状态,并调用其方法。
訾博ZiBo
2025/01/06
1350
Flutter 父子组件互调方法
Flutter 可折叠边栏
移动应用程序具有多种方法来处理屏幕之间的导航,例如导航抽屉,底部导航栏,滑动选项卡等。
老孟Flutter
2021/05/11
6.6K0
Flutter 可折叠边栏
Flutter中使用shared_preferences本地存储
https://pub.flutter-io.cn/packages/shared_preferences
越陌度阡
2021/01/29
1.7K0
Flutter 意见输入框
在我们输入文本之后下面的输入字数会变,可能马上你会想到使用setState不就完了嘛!....可是Dialog 并没有setState方法
赵哥窟
2021/03/02
2K0
Flutter 意见输入框
基于flutter3.x+material-design3仿微信App应用实战
flutter3-wchat一款基于flutter3+dart3+material-ui技术构建的跨多端仿微信聊天项目。
andy2018
2024/02/07
1.1K0
【Flutter】自定义滚动开关
switch是两个状态的UI组件,用于在ON(选中)或OFF(未选中)状态之间切换。通常,它是带有拇指滑块的按钮,用户可以在其中来回拖拉以选择其他选项,例如“开”或“关”。它的工作就像房子的电源开关。
老孟Flutter
2021/07/15
33.7K1
【Flutter】自定义滚动开关
Flutter 仿ios自定义一个DatePicker
编辑个人资料,修改生日的时候需要用到,需求就是如果传了日期就要滚动到传的日期位置,如果没有穿就是系统当前时间。所以动手撸一个,有需要的同学可以拿去做轮子。
赵哥窟
2021/03/02
1.1K0
Flutter 仿ios自定义一个DatePicker
[- Flutter基础篇 -] 聊聊那些弹框
对话框作为一个挺重要的东西,这里来说一下,细细一数也蛮多的,本文包括 [1].SimpleDialog [2].AlertDialog [3].CupertinoAlertDialog [4].Dialog中的组件状态更新 [5].SnackBar [6].BottomSheet [7].DatePicker [8].TimePickerwTimePicker, [9].CupertinoPicker [10].CupertinoDatePicker [11].CupertinoTimerPicker
张风捷特烈
2020/04/30
1.9K0
[- Flutter基础篇 -] 聊聊那些弹框
flutter自定义弹窗_app加弹窗
1.在pubspec.yaml中配置fluttertoast库,通过Pub get 获取fluttertoast的版本,通过Pub upgrade更新,eg:
全栈程序员站长
2022/11/08
2.1K0
Flutter 中可定制的时间规划器
Flutter 从一开始就是一场伟大的邂逅。构建引人入胜的 UI 从未如此快速。无论您是业余爱好者还是有教养的开发人员,都不难对 Flutter 产生无可救药的迷恋。所有软件开发人员都明白日期是最棘手的事情。同样,时间表也不是特例。
老孟Flutter
2021/09/03
1.7K0
Flutter 中可定制的时间规划器
相关推荐
18.Flutter学习之路日期和时间戳,以及日期组件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验