Android:像Spinner

时间:2017-03-01 09:11:27

标签: android android-datepicker

我的设计师希望显示一个DatePicker,它看起来像一个下拉列表: enter image description here

使用Spinner实现相同的目标是否是个好主意?我是否必须编写自己的逻辑来处理几个月,闰年等多少天?

或者有没有办法自定义Android DatePicker或任何其他小部件来实现此功能,其中我不需要编写处理日期的逻辑?

是否建议采用这种做法?

3 个答案:

答案 0 :(得分:1)

如果需要微调器样式的日期选择器,可以将DatePicker的datePickerMode属性设置为微调器。

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

答案 1 :(得分:1)

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

摇篮:

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

在您的活动中;

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

答案 2 :(得分:0)

您可以在程序员中设置样式。

 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();
    });