Skip to content

Commit b78366e

Browse files
Update README.md
1 parent 68f3dcf commit b78366e

File tree

1 file changed

+76
-2
lines changed

1 file changed

+76
-2
lines changed

README.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,76 @@
1-
# date-picker-with-event-calendar-flutter
2-
How to update event calendar (SfCalendar) DisplayDate using DatePicker in flutter?
1+
# Update event calendar (SfCalendar) DisplayDate using DatePicker in flutter
2+
3+
In flutter event calendar, you can dynamically update the initialDisplayDate using DatePicker.
4+
5+
![Binding date from datepicker to calendar](https://github.com/SyncfusionExamples/date-picker-with-event-calendar-flutter/blob/master/screenshots/Datepicker%20and%20calendar.gif)
6+
7+
## Step 1
8+
9+
In initState(), set the default values such as view, initial display date for SfCalendar, initial picked date for DatePicker.
10+
11+
```xml
12+
CalendarView _calendarView;
13+
DateTime _datePicked;
14+
DateTime _calendarDate;
15+
16+
@override
17+
void initState() {
18+
_calendarView = CalendarView.week;
19+
_datePicked = DateTime.now();
20+
_calendarDate = DateTime.now();
21+
super.initState();
22+
}
23+
```
24+
25+
# Step 2
26+
Trigger the `OnViewChanged` callback of the calendar and please find the following code for updating picked date of DatePicker from visible dates of the calendar and updating initialDisplayDate from picked date of the DatePicker widget.
27+
28+
```xml
29+
body: Column(
30+
children: <Widget>[
31+
Expanded(
32+
child: SfCalendar(
33+
initialDisplayDate: _calendarDate,
34+
view: _calendarView,
35+
onViewChanged: _viewChanged,
36+
),
37+
),
38+
],
39+
),
40+
41+
void _viewChanged(ViewChangedDetails viewChangedDetails) {
42+
SchedulerBinding.instance.addPostFrameCallback((duration) {
43+
setState(() {
44+
_datePicked = viewChangedDetails
45+
.visibleDates[viewChangedDetails.visibleDates.length ~/ 2];
46+
});
47+
});
48+
}
49+
```
50+
51+
## Step 3
52+
Using showDatePicker widget selecting a date and assign it to the calendar initialDisplayDate.
53+
54+
```xml
55+
actions: <Widget>[
56+
FlatButton(
57+
onPressed: () {
58+
showDatePicker(
59+
context: context,
60+
initialDate: _datePicked,
61+
firstDate: DateTime(2000),
62+
lastDate: DateTime(2100))
63+
.then((DateTime date) {
64+
if (date != null && date != _calendarDate)
65+
setState(() {
66+
_calendarDate = date;
67+
});
68+
});
69+
},
70+
child: Icon(
71+
Icons.date_range,
72+
color: Colors.white,
73+
),
74+
)
75+
],
76+
```

0 commit comments

Comments
 (0)