首页 > 解决方案 > 在日期选择器对话框中隐藏月份和年份选择

问题描述

嗨,我在 datepicker 对话框中传递月份和年份以显示该月的日期是否有任何可能的方法从 datepicker 对话框中隐藏年份和月份这是它的外观

这是我需要展示的: 这就是我需要展示的

标签: androidandroid-studioandroid-layoutandroid-datepicker

解决方案


您可以使用MaterialDatePicker材料组件库提供的。

除了隐藏月/年选择器之外,您还可以使用CalendarConstraints.

    long today = MaterialDatePicker.todayInUtcMilliseconds();
    Calendar utc = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    utc.clear();
    utc.setTimeInMillis(today);
    utc.set(Calendar.DAY_OF_MONTH, 1);
    long thisMonthFirst = utc.getTimeInMillis();
    utc.set(Calendar.DATE, utc.getActualMaximum(Calendar.DATE));
    long thisMonthLast = utc.getTimeInMillis();

    MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
    builder.setSelection(today);

    CalendarConstraints.Builder constraintsBuilder = new CalendarConstraints.Builder();
    constraintsBuilder.setOpenAt(today);
    constraintsBuilder.setStart(thisMonthFirst);
    constraintsBuilder.setEnd(thisMonthLast);

    builder.setCalendarConstraints(constraintsBuilder.build());
    MaterialDatePicker<Long> picker = builder.build();
    picker.show(getSupportFragmentManager(), picker.toString());

这样,选择仅限于当前月份,用户无法选择其他年份/月份。
您可以更改您的逻辑 ( utc.setTimeInMillis(today)) 以使用另一个月份。

在此处输入图像描述


推荐阅读