syncfusion_flutter_datepicker 18.1.43-beta syncfusion_flutter_datepicker: ^18.1.43-beta copied to clipboard
The Syncfusion Flutter Date Range Picker widget allows users to easily select dates or a range of dates. It has built-in views that allow quick navigation to the desired date.
import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
import 'package:syncfusion_flutter_core/core.dart';
void main() {
// Register your license here
SyncfusionLicense.registerLicense(null);
return runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
/// The method for [DateRangePickerSelectionChanged] callback, which will be
/// called whenever a selection changed on the date picker widget.
void _onSelectionChanged(DateRangePickerSelectionChangedArgs args) {
/// The argument value will return the changed date as [DateTime] when the
/// widget [SfDateRangeSelectionMode] set as single.
///
/// The argument value will return the changed dates as [List<DateTime>] when the
/// widget [SfDateRangeSelectionMode] set as multiple.
///
/// The argument value will return the changed range as [PickerDateRange]
/// when the widget [SfDateRangeSelectionMode] set as range.
///
/// The argument value will return the changed ranges as [List<PickerDateRange]
/// when the widget [SfDateRangeSelectionMode] set as multi range.
if (args.value is PickerDateRange) {
final DateTime rangeStartDate = args.value.startDate;
final DateTime rangeEndDate = args.value.endDate;
} else if (args.value is DateTime) {
final DateTime selectedDate = args.value;
} else if (args.value is List<DateTime>) {
final List<DateTime> selectedDates = args.value;
} else {
final List<PickerDateRange> selectedRanges = args.value;
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('DatePicker demo'),
),
body: SfDateRangePicker(
onSelectionChanged: _onSelectionChanged,
selectionMode: DateRangePickerSelectionMode.range,
initialSelectedRange: PickerDateRange(
DateTime.now().subtract(Duration(days: 4)),
DateTime.now().add(Duration(days: 3))),
),
));
}
}