更改DatePickerDialog样式,以显示日历而不是滚动条选择器

时间:2017-12-29 14:28:16

标签: java android android-theme android-datepicker datepickerdialog

我在我的应用上使用DatePickerDialog,当它显示时看起来像这样

enter image description here

我试图改变它的外观,看起来像this one

这是我宣布我的选择器的方式:

DatePickerDialog datepicker = new DatePickerDialog(getActivity(),
AlertDialog.THEME_DEVICE_DEFAULT_LIGHT,this,year,month,day);

根据我正在阅读的教程,如果我们通过AlertDialog.THEME_DEVICE_DEFAULT_LIGHT它应该显示我想要的日历,但它不起作用。我需要别的吗?

修改

根据this

,似乎华为(我正在使用的手机品牌)可能存在问题

1 个答案:

答案 0 :(得分:0)

来自official docs -

  

DatePicker_datePickerMode 属性设置为日历时,可以使用日历样式视图选择月份和日期,而可以使用列表单独选择年份。

根据datePickerMode doc -

  

在L发布之前,唯一的选择是微调器。自L开始,选中材料主题后,默认布局为日历。

因此,如果您在Activity中使用材质主题,则在themeResId中传递0。这将使对话框使用父上下文的默认警报对话框主题。

DatePickerDialog datepicker = new DatePickerDialog(getActivity(),
0 ,this,year,month,day);

否则,您可以使用Theme_Material_Dialog_AlertTheme_Material_Light_Dialog_Alert

DatePickerDialog datepicker = new DatePickerDialog(getActivity(),
R.style.THEME_DEVICE_DEFAULT_LIGHT,this,year,month,day);