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

问题描述 投票:0回答:1

我在我的应用程序上使用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的说法,这可能与华为(我正在使用的手机品牌)有关

java android android-theme android-datepicker datepickerdialog
1个回答
0
投票

来自official docs -

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

根据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);
© www.soinside.com 2019 - 2024. All rights reserved.