Skip to content Skip to sidebar Skip to footer

Android Material Design Datepicker With Appcompat

I'm trying to add the new Android 5.0 Material Design Datepicker to my pre 5.0 application using AppCompat. I've added compile 'com.android.support:appcompat-v7:21.0.0' to my buil

Solution 1:

Update:

As well pointed out by jfcartier, there's now also MaterialDateTimePicker. It's probably a nicer solution than the one below since it has a nice themable API.


You could try the android-betterpickers library. It has a CalendarDatePickerDialog widget that looks like the one you want. It provides a light and a dark theme, but for customizing colors you'd have to add it as a library project and change the code yourself.

Usage is pretty straightforward once you add the library to your project.

// Create date picker listener.
    CalendarDatePickerDialog.OnDateSetListenerdateSetListener=newCalendarDatePickerDialog.OnDateSetListener() {
        @OverridepublicvoidonDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
            // Set date from user input.Calendardate= Calendar.getInstance();
            date.set(Calendar.HOUR_OF_DAY, 9);
            date.set(Calendar.MINUTE, 0);
            date.set(Calendar.YEAR, year);
            date.set(Calendar.MONTH, monthOfYear);
            date.set(Calendar.DAY_OF_MONTH, dayOfMonth);

            // Do as you please with the date.
        }
    };

    // Create dismiss listener.
    CalendarDatePickerDialog.OnDialogDismissListenerdismissListener=newCalendarDatePickerDialog.OnDialogDismissListener() {
        @OverridepublicvoidonDialogDismiss(DialogInterface dialoginterface) {
            // Do something when the user dismisses the dialog.
        }
    };

    // Show date picker dialog.CalendarDatePickerDialogdialog=newCalendarDatePickerDialog();
    dialog.setOnDateSetListener(dateSetListener);
    dialog.setOnDismissListener(dismissListener);
    dialog.setThemeDark(false);
    dialog.show(getSupportFragmentManager(), "DATE_PICKER_TAG");

The end result should look like this (sorry for the poor quality).

AOSP Calendar Picker

Solution 2:

Material components is the recommended way for date picker

With the Material Components for Android you can use the new MaterialDatePicker.

add the following to your build.gradle

implementation 'com.google.android.material:material:1.1.0'

For kotlin

valbuilder= MaterialDatePicker.Builder.datePicker()
 valpicker= builder.build()
 picker.show(parentFragmentManager, "date_picker_tag")

For Java

   MaterialDatePicker.Builder<Long> builder = 
   MaterialDatePicker.Builder.datePicker();
   MaterialDatePicker<Long> picker = builder.build();
   picker.show(getSupportFragmentManager(), picker.toString());

It supports the following configurations

portrait - mode date picker

enter image description here

landscape - mode date picker

enter image description here

date range picker

enter image description here

Mobile input pickerenter image description here

Additional reference

Here is the official design guideline

A complete demo app can be found here

Solution 3:

I liked this library. It's a clone of Flavien Laurent Date and Time Picker with some improvements. Both of them are based on Official Google Date and Time Picker for Android 4.3+ but adapted for Android 2.1+.

Post a Comment for "Android Material Design Datepicker With Appcompat"