A Short Intro to Flutter Cupertino Date Picker

You may have seen a menu in the apps where you can navigate through the day, month, and year to choose the date. Technically, that is the date picker. If you’re a Flutter developer, you could be worried about learning how to make a date picker in Flutter. Everything you need to know about the Cupertino date picker in Flutter will be covered in this post.

Let’s first learn more about Cupertino Flutter before moving forward.

Overview of Cupertino in Flutter

In Flutter, “Cupertino” refers to a collection of widgets and design elements reminiscent of Apple’s iOS interface. We utilize it to build an app that closely resembles an iOS app by using widgets like CupertinoButton, CupertinoAlertDialog, and CupertinoNavigationBar. However, the Flutter framework, which aids in creating cross-platform apps that parallel native iOS apps in appearance and functionality, includes the Cupertino library.

What exactly is this Cupertino date picker? Find out more about

Flutter Cupertino Date Picker

A user interface (UI) element in Flutter called the Cupertino date picker enables users to choose a date from a calendar-like layout. This picker is a beautiful choice for programmers wishing to create apps with a similar style because it is made to be comparable to the date picker seen in iOS.

You must first create a new project to use the Cupertino date picker in Flutter app development. After setting up your project, you can include the Cupertino date picker flutter in your app’s design.

Let’s look at an example to help you better grasp how date pickers function.

Example of a Flutter Date Picker

We’ll use the CupertinoDatePickerMode.date attribute to create a Cupertino date picker. It will be possible for you to select a date.

This is the code.

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

class CupertinoDatePickerDemo extends StatefulWidget {
  const CupertinoDatePickerDemo({Key? key}) : super(key: key);
  State<CupertinoDatePickerDemo> createState() =>

class _CupertinoDatePickerDemoState extends State<CupertinoDatePickerDemo> {
  DateTime date =
      DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day);
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Cupertino Date Picker Demo'),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
              onPressed: () async {
                await showCupertinoModalPopup<void>(
                  context: context,
                  builder: (_) {
                    final size = MediaQuery.of(context).size;
                    return Container(
                      decoration: const BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.only(
                          topLeft: Radius.circular(12),
                          topRight: Radius.circular(12),
                      height: size.height * 0.27,
                      child: CupertinoDatePicker(
                        mode: CupertinoDatePickerMode.date,
                        onDateTimeChanged: (value) {
                          setState(() {
                            date = value;
              child: const Text('Show Date Picker'),



The CupertinoDatePicker’s essential characteristics are as follows:

1. mode: CupertinoDatePickerMode.date, CupertinoDatePickerMode.time, or CupertinoDatePickerMode.dateAndTime are just a few examples of the modes that can be defined for the date picker.

2. initialDateTime: When the picker is opened, the initial date and time are set using initialDateTime.

3. minimumDate and maximumDate: You can specify a range of pickable dates.

4. minimumYear and maximumYear: Minimum and maximum years can be used to restrict the available range of years.

5. minuteInterval: It is between the minutes displayed in the picker specified here.

6. onDateTimeChanged: Whenever the specified date or time changes, a callback method called onDateTimeChanged is called.

Schedule an interview with WordPress developers

How to Customize the Flutter Date Picker?

The Cupertino date picker look can be easily customized. In addition to changing the picker’s backdrop color and font size, you can also alter the color of the flutter date picker. The “Done” and “Cancel” buttons at the bottom of the picker can also be added and modified.

Isn’t it fascinating? You must agree.

It’s crucial to consider your app’s flow and general design when integrating the Cupertino date picker into the layout. The date picker should be put in an appropriate location that is simple for the user to access. It should also be planned so that it doesn’t interfere with the other components on the screen or take up excessive space.

How to Change the Color of the Flutter Date Picker?

The date picker modal popup menu in Flutter is transparent by default. Depending on whether the color of your app screen makes the modal popup less visible or for any other reason, you might need to adjust that as well. So, how do you modify the color of the Flutter date picker?

As you can see in the code below, you must assign any other color from the backgroundColor property to accomplish that.

                        backgroundColor: Colors.deepPurple[100],
                        mode: CupertinoDatePickerMode.date,
                        onDateTimeChanged: (value) {
                          setState(() {
                            date = value;


You should be aware that using the Flutter custom date picker to create a seamless user experience requires providing users with an interface that is simple to understand and navigate. This can be accomplished by emphasizing the chosen date, offering clear and concise instructions, and simply enabling users to move through the various months and years.

Unique Features of the Cupertino Date Picker

We can build a dynamic and responsive user interface for your app using the Flutter date range picker in combination with other Flutter widgets. Users can choose the date and the time, for instance, by combining the date picker and time picker. Additionally, you may add more complex functionality, such as the ability to create recurring events, by combining the date picker with other UI elements.

Using the picker in conjunction with other widgets and components in your app and being aware of the overall design and layout are two tips and tricks for enhancing the performance of the Cupertino date picker. To ensure that the picker functions as intended, evaluating its performance on various hardware and in different scenarios is crucial.


The Cupertino date range picker offers a consistent and familiar user interface, one of the main advantages of utilizing it in your app. Users are more likely to understand how to interact with the date picker if it is comparable to how they are familiar with it, which can help improve the overall user experience. The Cupertino date picker is also very adaptable, enabling engineers to quickly change its appearance to match the overall design of their app.

The Cupertino Flutter guide ended with this, so we did our best to hide it. You are welcome to ask any further questions or offer any recommendations. Alternatively, you can hire Flutter developers to assist you in solving any complex technical problems your app may have and make it a valuable product.

Frequently Asked Questions (FAQs)

1. How can I choose multiple dates in Flutter Datepicker?

Using the date range picker’s ‘enableMultiView’ parameter, you can add more than one picker in the Flutter date range picker.To display the Multiview picker, put the picker inside the Scaffold widget’s body, enable the ‘enableMultiView’ property, and set the value to true.

2. What distinguishes the DatePicker from the date range picker?

The single date picker’s functionality is quite similar to the date range picker; however, instead of selecting just one date, the user can choose a start date and an end date. Users can manually enter the date in a text box or select the date on a calendar for each date in the range.

3. How to display a Cupertino date picker as a dialog ?

To show cupertino date picker as a dialog you need to wrap CupertinoDatePicker inside CupertinoAlertDialog and then display it using the showDialog(). This should display the CupertinoDatePicker as a modal dialog.

Book your appointment now

Request a Quote