酷炫的日期选择器

功能

  • 这是有史以来最好的日期选择器UI。(至少对我来说是这样?)
  • 可以设置日期选择器的所有颜色
  • 支持底部显示已选日期列表。用户可以将已选日期移动到选定的年份和月份。
  • “酷炫”

示例




安装

命令

 $ flutter pub add cool_datepicker

pubspec.yaml

dependencies:
  cool_datepicker: ^(latest)

用法

import 'package:cool_datepicker/cool_datepicker.dart';


    CoolDatepicker(onSelected: (_) {})

重要选项

选项 类型 默认值 描述
onSelected 功能 必需 当用户选择日期然后点击“确定”按钮时,它将被触发。您必须在函数中放入一个参数。(例如:onChange: (a) {})。然后,您将收到返回的 List<DateTime> / Map<String, DateTime>
defaultValue List<DateTime> / Map<String, DateTime> 默认选定的日期。它将根据您使用的类型自动检测单选/范围选择。
disabledList List<DateTime> 禁用的日期列表。您必须传递 List<DateTime>
disabledRangeList List<Map<String, DateTime>> 禁用的日期范围映射。您必须在 Map<String, DateTime> 中使用 'start' 和 'end' 键。
isRange 布尔值 日期选择器用于单选/范围选择

    CoolDatepicker(
        defaultValue: [DateTime(2020, 8, 24)], // single select
        onSelected: (_) {},
        disabledList: [DateTime(2021, 10, 22), DateTime(2021, 10, 12)],
        disabledRangeList: [
            {
            'start': DateTime(2021, 11, 1),
            'end': DateTime(2021, 11, 13)
            },
        ],
    )
    CoolDatepicker(
        defaultValue: { // range select
        'start': DateTime(2020, 9, 25),
        'end': DateTime(2021, 11, 24)
        },
        onSelected: (_) {},
    )

结果选项

选项 类型 默认值 描述
iconSize 双精度 20 日期选择器图标大小
resultWidth 双精度 220
resultHeight 双精度 50
resultBD BoxDecoration 以下代码 结果的 Box decoration
resultTS TextStyle 以下代码 结果的文本样式
resultPadding EdgeInsets 以下代码 结果的内边距
isResultIconLabelReverse 布尔值 结果按行反转顺序
labelIconGap 双精度 10 标签和图标之间的间隙
isResultLabel 布尔值 显示/隐藏结果的标签
placeholder 字符串
placeholderTS TextStyle 以下代码
iconSize 双精度 20 resultBox 中日历图标的大小

resultBD = BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.circular(10),
          boxShadow: [
            BoxShadow(
              color: Colors.grey.withOpacity(0.1),
              spreadRadius: 1,
              blurRadius: 10,
              offset: Offset(0, 1),
            ),
          ],
        );

resultTS = TextStyle(
            fontSize: 20,
            color: Colors.black,
          );

resultPadding = const EdgeInsets.only(left: 10, right: 10);

placeholderTS = TextStyle(color: Colors.grey.withOpacity(0.7), fontSize: 20);

日期选择器选项

选项 类型 默认值 描述
calendarSize 双精度 400 日期选择器大小
minYear 双精度 DateTime.now().year – 100 日期选择器的最小年份
maxYear 双精度 DateTime.now().year + 100 日期选择器的最大年份
format string ‘yyyy-mm-dd’ 结果和底部已选日期显示的格式
limitCount 整数 1 设置可选择的日期数量
weekLabelList 列表 以下代码 设置日期选择器上的星期标签
monthLabelList 列表 以下代码 设置日期选择器日期选择器上的月份下拉标签
isYearMonthDropdownReverse 布尔值 日期选择器上的下拉列表顺序反转
headerColor 颜色 Color(0XFF6771e4) 日期选择器上的下拉列表顺序反转
arrowIconAreaColor 颜色 Color(0XFF4752e0) 日期选择器上的下拉列表顺序反转
selectedCircleColor 颜色 Color(0XFF6771e4) 日期选择器上的下拉列表顺序反转
selectedBetweenAreaColor 颜色 Color(0XFFe2e4fa) 日期选择器上的下拉列表顺序反转
cancelFontColor 颜色 Color(0XFF4a54c5) 日期选择器上的下拉列表顺序反转
okButtonColor LinearGradient 以下代码 日期选择器上的下拉列表顺序反转
bottomSelectedBorderColor 颜色 Color(0XFF6771e4) 日期选择器上的下拉列表顺序反转
isDark 布尔值 黑暗模式
cancelBtnLabel 字符串 ‘取消’ 取消按钮标签
okBtnLabel 字符串 ‘确定’ 确定按钮标签

weekLabelList = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];

monthLabelList = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];

okButtonColor = const LinearGradient(colors: [
    Color(0XFF4a54c5),
    Color(0XFF6771e4),
]);

GitHub

查看 Github