table_calendar_jalali 包是一个 Flutter 包,提供了一个支持 Jalali(波斯)日历系统的自定义表格日历小部件。它允许用户浏览不同的月份、选择特定日期以及自定义日历的外观。

此包利用 shamsi_date 包处理 Jalali 日历功能,并利用 table_calendar_jalali 包扩展 String 类以进行 Farsi 数字转换。

用法示例:要使用 table_calendar_jalali 包,请按照以下步骤操作

将包添加到您的 pubspec.yaml 文件

dependencies:
  table_calendar_jalali: ^lastVersion

在 Flutter 小部件树中实现 JalaliTableCalendar 小部件

  JalaliTableCalendar(
            currentMonth: Jalali.now(),
            headerStyle: TextStyle(color: Colors.blue),
            weekDaysStyle: TextStyle(fontSize: 12),
            selectedDay: selectedDate,
            dayBuilder: (context, date) {
              // Custom day builder implementation
              return Container(
                margin: EdgeInsets.all(5),
                decoration: BoxDecoration(
                    color: Colors.white,
                    borderRadius: BorderRadius.circular(10)),
                child: Center(
                  child: Text(
                    date.day.toString().toFarsiNumber(),
                    style: TextStyle(fontSize: 16),
                  ),
                ),
              );
            },
            onDaySelected: (date) {
              // Handle day selection
              print('Selected date: $date');
              setState(() {
                selectedDate = date;
              });
            },
            headerText: (date) {
              // Custom header text implementation
              return '${date.formatter.mN} ${date.year}'.toFarsiNumber();
            },
            onMonthChanged: (date) {
              // Handle month change
              print('Current month: $date');
            },
          ),

此示例演示了如何创建具有自定义样式、选定日期以及自定义日期和标题构建器的 JalaliTableCalendar。onDaySelected 回调和 onMonthChanged 回调用于处理用户与日历的交互。

注意:请确保用 MaterialApp 或 CupertinoApp 小部件包装小部件树,以提供日历所需的 material 或 Cupertino 设计。

就是这样!您现在可以使用 table_calendar_jalali 包将 Jalali 表格日历添加到您的 Flutter 应用程序中。

GitHub

查看 Github