2014-12-08 25 views
29

Ich versuche, das neue Android 5.0 Material Design Datepicker zu meiner Pre 5.0-Anwendung mit AppCompat hinzuzufügen. Ich habeAndroid Material Design Datepicker mit AppCompat

hinzugefügt
compile "com.android.support:appcompat-v7:21.0.0" 

meiner build.gradle Datei und aktualisiert mein Theme:

<?xml version="1.0" encoding="utf-8"?> 

<style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

aber die Datumsauswahl sieht immer noch wie folgt aus:
old datepicker
Und nicht so: material design datepicker

Kann mir jemand sagen, wie man den neuen datepicker auf pre 5.0 Geräten funktioniert?

Vielen Dank im Voraus.

+2

Sie können nicht, wenn Sie es von Ihrem eigenen Port ... – Selvin

+0

@Selvin ic, danke. Spinner, Checkbox usw. funktionieren mit appcombat. Die Fragmentierung der Android wird lächerlich und nervig. – Androidicus

+0

Sie sollten sich nicht um solche Details sorgen ... Pre 5.0 android Benutzer wissen nicht über neue Datumsauswahl: -) ... Auch sollten Sie glücklich sein, dass compat Bibliothek existiert und Sie sich nicht um wichtigere sorgen müssen Zeug wie Fragmente, Action-Bar .... – Selvin

Antwort

26

Update:

Wie der jfcartier wies darauf hin, es jetzt ist auch MaterialDateTimePicker. Es ist wahrscheinlich eine bessere Lösung als die untenstehende, da es eine nette, bearbeitbare API hat.


könnten Sie versuchen, die android-betterpickers Bibliothek. Es hat ein CalendarDatePickerDialog Widget, das wie das gewünschte aussieht. Es bietet ein helles und ein dunkles Thema, aber zum Anpassen von Farben müssen Sie es als Bibliotheksprojekt hinzufügen und den Code selbst ändern.

Die Verwendung ist ziemlich einfach, sobald Sie die Bibliothek zu Ihrem Projekt hinzufügen.

// Create date picker listener. 
    CalendarDatePickerDialog.OnDateSetListener dateSetListener = new CalendarDatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) { 
      // Set date from user input. 
      Calendar date = 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.OnDialogDismissListener dismissListener = new CalendarDatePickerDialog.OnDialogDismissListener() { 
     @Override 
     public void onDialogDismiss(DialogInterface dialoginterface) { 
      // Do something when the user dismisses the dialog. 
     } 
    }; 

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

Das Endergebnis sollte so aussehen (Entschuldigung für die schlechte Qualität).

AOSP Calendar Picker

+27

Es gibt auch diese Bibliothek -> https: // github.com/wdullaer/MaterialDateTimePicker – jfcartier

+0

Wie können wir unseren benutzerdefinierten Stil zu calederpickerdialog in dieser Bibliothek festlegen? Wie können wir die Farben ändern und alles? Bitte helfen Sie. – Sajal

+0

@Sajal Sie müssen den Quellcode herunterladen und ihn als Bibliothek zu Ihrem Projekt hinzufügen. Dann können Sie alles, was Sie wollen, durch Code anpassen. Sie können auch versuchen, Farben und Stile zu überschreiben, indem Sie Ressourcen mit demselben Namen in Ihrem Projekt erstellen, aber das ist ein begrenzterer Ansatz. –

Verwandte Themen