Android : DatePicker 下拉菜单像 Spinner

Android : DatePicker dropdown like Spinner

我的设计师想要显示一个看起来像下拉列表的 DatePicker

使用 Spinner 来实现是个好主意吗?我是否必须编写自己的逻辑来处理哪些月份、闰年等有多少天?

或者是否有任何方法可以自定义 Android DatePicker 或任何其他小部件来实现此功能,其中我不必为处理日期编写逻辑?

完全推荐这种做法吗?

如果你想要spinner风格的日期选择器,你可以将DatePicker的datePickerMode属性设置为spinner。

<DatePicker
...
android:datePickerMode="spinner" />

看看这个图书馆:https://github.com/code-troopers/android-betterpickers

Gradle:

compile 'com.code-troopers.betterpickers:library:3.1.0'

在你的 Activity;

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        DatePickerBuilder dpb = new DatePickerBuilder()
                .setFragmentManager(getSupportFragmentManager())
                .setStyleResId(R.style.BetterPickersDialogFragment)
                .setYearOptional(true);
        dpb.show();
    }
});

否则:更多的开源库; https://android-arsenal.com/tag/27?sort=rating

您可以在Programmer中设置样式。

 etDOB.setOnClickListener(v -> {
        DatePickerDialog dialog = new DatePickerDialog(this, android.R.style.Theme_Holo_Dialog, date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH));
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.show();
    });