Ich mache derzeit ein Anmeldeformular und eines der Felder ist für das Geburtsdatum des Benutzers. Ich möchte datepicker verwenden, möchte jedoch nicht das Kalenderlayout wie unten gezeigt:
Ich möchte, dass das Layout in etwa so aussieht, so dass es einfacher ist, Jahr und Monat auszuwählen, ohne durch alles blättern zu müssen:
Ich weiß jedoch nicht, wie ich damit umgehen soll oder was ich in die Datei styles.xml schreiben sollte. Jede Hilfe wäre sehr dankbar.
Fügen Sie dies zu style.xml
hinzu
<style name="date_picker_theme" parent="@Android:style/Widget.DatePicker">
Und dann sollten Sie den Stil für Ihre Datumsauswahl wie folgt anwenden:
<DatePicker
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/datePicker"
style="@style/date_picker_theme" />
Gestalten Sie mit
<style name="DatePicker" parent="@Android:style/Theme.Holo.Light">
<item name="Android:datePickerStyle">@Android:style/Widget.DatePicker</item>
</style>
Dann im benutzerdefinierten Fragmentdialogfeld xml
<DatePicker
Android:theme="@style/DatePicker"
Android:id="@+id/fragment_date_picker_control"
Android:datePickerMode="spinner"
Android:spinnersShown="true"
Android:calendarViewShown="false"
Android:layout_marginLeft="@dimen/margin_normal"
Android:layout_marginRight="@dimen/margin_normal"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal" />
Link: http://yogeshkalwar.blogspot.in/2017/08/custom-spinner-datepicker-supporting-n70.html
Um den DatePicker-Stil global festzulegen, fügen Sie Folgendes zu style.xml
hinzu oder passen Sie den vorhandenen Inhalt an:
<resources>
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="Android:datePickerStyle">@style/MyDatePicker</item>
</style>
...
</resources>
Definieren Sie Ihren benutzerdefinierten DatePicker-Stil entweder in style.xml
oder in einer separaten Datei, z.
<resources>
<style name="MyDatePicker" parent="@Android:style/Widget.DatePicker">
<item name="Android:calendarViewShown">false</item>
<item name="Android:datePickerMode">spinner</item>
</style>
</resources>
Die obigen Eigenschaften beziehen sich auf XML. Wenn Sie es programmgesteuert festlegen möchten, können Sie den folgenden Code eingeben, aber ich habe diesen Code nicht überprüft, ob er funktioniert oder nicht.
datepickerDialog_object.getDatePicker().setSpinnersShown(true);
datepickerDialog_object.getDatePicker().setCalendarViewShown(false);
DatePickerDialog bietet eine praktische Methode, mit der Sie das gewünschte Layout festlegen können.
public DatePickerDialog(@NonNull Context context, @StyleRes int themeResId,
@Nullable OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) {
this(context, themeResId, listener, null, year, monthOfYear, dayOfMonth);
}
public static final int MODE_SPINNER = 1;
public static final int MODE_CALENDAR = 2;
Das Übergeben von 1 oder 2 in themesResId führt den Trick aus.