Flutter希伯来日期选择插件material_hebrew_date_picker的使用

Flutter希伯来日期选择插件material_hebrew_date_picker的使用

一个为Flutter应用程序定制的Material Design希伯来日期选择器,支持单日期和日期范围选择。该插件为面向希伯来语/英语用户的程序提供了合适的文化日期选择体验。

特性

  • 支持希伯来日历并具有准确的日期计算功能
  • 单日期和日期范围选择模式
  • 可自定义的主题
  • 同时支持希伯来语和公历日期显示
  • 响应式设计,适用于各种屏幕尺寸
  • 支持从右到左(RTL)的希伯来文本
  • 高亮今天
  • 年份选择模式
  • 自定义的颜色方案和排版

安装

在你的项目pubspec.yaml文件中添加以下依赖:

dependencies:
  material_hebrew_date_picker: 1.0.0+6

然后运行:

flutter pub get

使用

在Dart代码中导入插件:

import 'package:material_hebrew_date_picker/material_hebrew_date_picker.dart';

单日期选择器

void _showSingleDatePicker() async {
  await showMaterialHebrewDatePicker(
    context: context,
    initialDate: DateTime.now(), // 初始日期设置为当前日期
    firstDate: DateTime(2000), // 最早可选日期
    lastDate: DateTime(2100), // 最晚可选日期
    hebrewFormat: true, // 是否以希伯来语格式显示
    onDateChange: (date) {
      print('Date changed: $date'); // 当日期改变时打印
    },
    onConfirmDate: (date) {
      print('Date confirmed: $date'); // 当日期确认时打印
      // 处理已确认的日期
    },
  );
}

日期范围选择器

void _showDateRangePicker() async {
  final DateTimeRange? result = await showMaterialHebrewDateRangePicker(
    context: context,
    firstDate: DateTime.now(), // 起始日期
    lastDate: DateTime.now().add(Duration(days: 365)), // 结束日期
    hebrewFormat: true, // 是否以希伯来语格式显示
  );

  if (result != null) {
    print('Selected range: ${result.start} to ${result.end}'); // 打印所选日期范围
    // 处理所选日期范围
  }
}

使用与kosher_dart结合

虽然不是必需的,但你可能想使用kosher_dart包来获得更高级的希伯来日期功能。这里是一个例子:

import 'package:kosher_dart/kosher_dart.dart';

void _showSingleDatePicker() {
  showMaterialHebrewDatePicker(
    context: context,
    initialDate: _selectedDate ?? DateTime.now(), // 初始日期
    firstDate: JewishDate().getGregorianCalendar(), // 最早可选日期
    lastDate: JewishDate().getGregorianCalendar().add(const Duration(days: 30)), // 最晚可选日期
    hebrewFormat: false, // 是否以希伯来语格式显示
    onDateChange: (date) {
      print('Date changed: $date'); // 当日期改变时打印
    },
    onConfirmDate: (date) {
      print('Date confirmed: $date'); // 当日期确认时打印
      setState(() {
        _selectedDate = date; // 更新状态
      });
    },
  );
}

为了使用kosher_dart,你需要将其添加到你的pubspec.yaml文件中:

dependencies:
  kosher_dart: ^2.0.16  # 使用最新版本

自定义

你可以通过HebrewDatePickerTheme类来自定义日期选择器的外观:

HebrewDatePickerTheme customTheme = HebrewDatePickerTheme(
  primaryColor: Colors.blue,
  onPrimaryColor: Colors.white,
  surfaceColor: Colors.white,
  onSurfaceColor: Colors.black87,
  disabledColor: Colors.grey,
  selectedColor: Colors.blue,
  todayColor: Colors.orange,
  headerTextStyle: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
  bodyTextStyle: TextStyle(fontSize: 14),
  weekdayTextStyle: TextStyle(fontSize: 12, fontWeight: FontWeight.bold),
);

showMaterialHebrewDatePicker(
  // 其他参数...
  theme: customTheme,
);

更多关于Flutter希伯来日期选择插件material_hebrew_date_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter希伯来日期选择插件material_hebrew_date_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


material_hebrew_date_picker 是一个 Flutter 插件,用于在 Flutter 应用中实现希伯来日历(犹太历)的日期选择器。这个插件基于 Material Design 风格,并且可以轻松集成到你的 Flutter 项目中。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 material_hebrew_date_picker 依赖:

dependencies:
  flutter:
    sdk: flutter
  material_hebrew_date_picker: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

使用插件

在你的 Dart 文件中导入插件:

import 'package:material_hebrew_date_picker/material_hebrew_date_picker.dart';

接下来,你可以使用 HebrewDatePicker 组件来显示希伯来日期选择器。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:material_hebrew_date_picker/material_hebrew_date_picker.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HebrewDatePickerExample(),
    );
  }
}

class HebrewDatePickerExample extends StatefulWidget {
  [@override](/user/override)
  _HebrewDatePickerExampleState createState() => _HebrewDatePickerExampleState();
}

class _HebrewDatePickerExampleState extends State<HebrewDatePickerExample> {
  DateTime? _selectedDate;

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('希伯来日期选择器示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              _selectedDate == null
                  ? '未选择日期'
                  : '选择的日期: ${_selectedDate!.toLocal()}',
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () => _selectDate(context),
              child: Text('选择日期'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部