LazyDatePicker

Additional

Language
Java
Version
N/A
Created
Jul 5, 2018
Updated
May 31, 2021 (Retired)
Owner
Lopez Mikhael (lopspower)
Contributor
Lopez Mikhael (lopspower)
1
Activity
Badge
Generate
Download
Source code

LazyDatePicker


This is an Android project to offer an alternative to the native Android Date Picker.

USAGE

To make a lazy date picker add LazyDatePicker in your layout XML and add LazyDatePicker library in your project or you can also grab it via Gradle:

implementation 'com.mikhaellopez:lazydatepicker:1.1.0'

XML

<com.mikhaellopez.lazydatepicker.LazyDatePicker
    android:id="@+id/lazyDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:ldp_text_color="@color/primary"
    app:ldp_hint_color="@color/accent"
    app:ldp_date_format="mm-dd-yyyy" />

You must use the following properties in your XML to change your LazyDatePicker.

Properties Type Default
app:ldp_text_color color BLACK
app:ldp_hint_color color GRAY
app:ldp_date_format mm-dd-yyyy or dd-mm-yyyy mm-dd-yyyy
app:ldp_show_full_date boolean true

KOTLIN

lazyDatePicker.setDateFormat(LazyDatePicker.DateFormat.MM_DD_YYYY)
lazyDatePicker.setMinDate(minDate)
lazyDatePicker.setMaxDate(maxDate)

// The date when is selected
lazyDatePicker.setOnDatePickListener { dateSelected ->
    //...
}

// True or false when date is selected
lazyDatePicker.setOnDateSelectedListener { dateSelected ->
    //...
}

JAVA

LazyDatePicker lazyDatePicker = findViewById(R.id.lazyDatePicker);
lazyDatePicker.setDateFormat(LazyDatePicker.DateFormat.MM_DD_YYYY);
lazyDatePicker.setMinDate(minDate);
lazyDatePicker.setMaxDate(maxDate);

lazyDatePicker.setOnDatePickListener(new LazyDatePicker.OnDatePickListener() {
    @Override
    public void onDatePick(Date dateSelected) {
        //...
    }
});

lazyDatePicker.setOnDateSelectedListener(new LazyDatePicker.OnDateSelectedListener() {
    @Override
    public void onDateSelected(Boolean dateSelected) {
        //...
    }
});

LOCAL DATE

You can used LazyLocalDatePicker instead of LazyDatePicker to have all method with LocalDate instead of Date.

XML:

<com.mikhaellopez.lazydatepicker.LazyLocalDatePicker
    android:id="@+id/lazyDatePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:ldp_text_color="@color/primary"
    app:ldp_hint_color="@color/accent"
    app:ldp_date_format="mm-dd-yyyy" />

KOTLIN:

lazyLocalDatePicker.setDateFormat(LazyDatePicker.DateFormat.MM_DD_YYYY)
lazyLocalDatePicker.setMinLocalDate(minDate)
lazyLocalDatePicker.setMaxLocalDate(maxDate)

// The localdate when is selected
lazyLocalDatePicker.setOnLocalDatePickListener { localDateSelected ->
    //...
}

// True or false when date is selected
lazyLocalDatePicker.setOnLocalDateSelectedListener { dateSelected ->
    //...
}

OVERRIDE

You can override day, month & year if you want like this in your strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <string name="ldp_day" tools:override="true">D</string>
    <string name="ldp_month" tools:override="true">M</string>
    <string name="ldp_year" tools:override="true">Y</string>
</resources>

You can also change the design of the picker by changing the dimensions like this in your dimens.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <dimen name="lazy_date_picker_width_case" tools:override="true">12dp</dimen>
    <dimen name="lazy_date_picker_height_focus" tools:override="true">2.5dp</dimen>
    <dimen name="lazy_date_picker_width_margin" tools:override="true">1dp</dimen>
    <dimen name="lazy_date_picker_width_space" tools:override="true">6dp</dimen>
</resources>

And to finish you can also completely redefine the layout by keeping the same name layout_lazy_date_picker.xml and keep all the ids. You can find the default one here: layout_lazy_date_picker.xml

SUPPORT ❤️

Find this library useful? Support it by joining stargazers for this repository ⭐️
And follow me for my next creations ????

LICENCE

LazyDatePicker by Lopez Mikhael is licensed under a Apache License 2.0.