当前位置: 首页 > news >正文

第四十二回:DateRangePickerDialog Widget

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了DatePickerDialog Widget相关的内容,本章回中将介绍 DateRangePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里说的DateRangePickerDialog是一种弹出窗口,只不过窗口的内容固定显示为日期,它和DatePickerDialog类似,也是用来让用户选择日期,选择完日期后点击确认或者取消按钮,窗口就会消失。不同点在于它弹出的窗口中包含两个日历,一个用来选择开始日期,另外一个用来选择结束日期,而DatePickerDialog只显示一个日历。通俗点讲,该组件弹出的窗口就是用来选择日期范围,这和它名字中的Range相匹配,本章回将详细介绍它的使用方法。

使用方法

和其它Widget类似,我们可以通过DateRangePickerDialog的属性来操作它,下面是一些常用的属性:

  • firstDate属性:用来控制日期选择范围中的开始日期;
  • lastDate属性:用来控制日期选择范围中的结束日期;
  • currentDate属性:用来控制初始化日期,也就是弹出窗口时看到的日期;
  • initialEntryMode属性:用来控制弹出窗口的样式;
  • cancelText属性:用来控制取消按钮显示的文字;
  • confirmText属性:用来控制确认按钮显示的文字;

注意:

  • 上面的这些属性中前两个属性是必选的,其它属性都是可选的。
  • 弹出窗口的样式有calendar和input两种样式,calendar样式就是可以显示整月日期的样式,占用屏幕窗口比较大,不过比较直观,在此样式下,我们可以通过点击来选择日期;
  • input样式只显示当前日期,占用屏幕窗口比较小,在此样式下,我们可以通过输入日期来达到日期选择的效果。
  • 如果不指定样式的话默认样式是calendar.我的经验是使用input样式,因为这样显示日期更加直观一些,而使用calendar样式会让窗口变的更加大,因为窗口中包含了两日历。
  • DateRangePickerDialog组件不能单独使用,需要配合showDialog()方法或者showDateRangePicker()方法一起使用才可以。

接下来我们通过代码来演示它们如何配合使用。

示例代码

return DateRangePickerDialog(initialEntryMode: DatePickerEntryMode.input,//currentDate属性必须写不然报空指针异常currentDate:DateTime(2023),firstDate: DateTime(2001),lastDate: DateTime(2099),
);showDateRangePicker(context: context,firstDate: DateTime(2021),lastDate: DateTime(2033),
);

在上面的代码中,我们使用了两种方法来显示DateRangePickerDialog

  • showDialog()方法通过builder属性创建了一个DateRangePickerDialog对象。
  • showDateRangePicker()方法是直接显示DateRangePickerDialog,访方法的参数和DateRangePickerDialog的属性十分相似。

把这两种方法赋值给Button类组件的onPress属性,点击Button时就会弹出窗口,然后就可以在窗口中选择日期了。虽然这两种方法都可以创建DateRangePickerDialog,但是我推荐使用showDateRangePicker()方法,因为它比showDialog()方法使用方便,我建议大家自己动手试试,体会一下这两种方法的不同点。

看官们,关于DateRangePickerDialog Widget的内容就介绍到这里,欢迎大家在评论区交流与讨论!

http://www.lryc.cn/news/89713.html

相关文章:

  • 【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)
  • Android UEvent事件分析之Kernel上报电量
  • C++ vector模板和deque的简单应用
  • 声明式事务控制
  • cisp pte模拟题
  • Docker容器 和 Kubernetes容器集群管理系统
  • 港联证券|资金疯狂涌入AI,这一板块涨幅超90%!万亿巨头继续狂飙
  • 短视频矩阵系统源码-开源开发php语言搭建
  • PFEA112-20 3BSE050091R20 张力控制器
  • Java springboot+vue生成报纸排版页面的新闻官网
  • Terra-Luna归零一年后:信任重建、加密未来路在何方?
  • Android 12.0 手动安装Persistent app失败的解决方案
  • Unity3D安装:从命令行安装 Unity
  • C++模板(详解)
  • WuThreat身份安全云-TVD每日漏洞情报-2023-05-25
  • android 12.0去掉recovery模式UI页面的选项
  • C++ vector类成员函数介绍
  • 【C++】二叉搜索树Binary Search Tree
  • Hover.css动画库的使用
  • Baumer工业相机堡盟工业相机如何通过文件保存和导入的方式保存和载入相机的各类参数(C#)
  • 封装设计!抽象BasePage,提升WEB自动化测试用例质量和效率
  • c primer plus学习笔记(一)
  • C语言2:说心里话
  • 任务19 简单个人电话号码查询系统
  • day4--链表内指定区间反转
  • HTTP状态码是什么?常用的状态码有什么?
  • 【软件分析/静态分析】学习笔记01——Introduction
  • Java数组
  • 【数据库原理入门】
  • 练习Vue烘培坊项目