android – DialogFragment中的DatePicker忽略setCalendarViewShown

前端之家收集整理的这篇文章主要介绍了android – DialogFragment中的DatePicker忽略setCalendarViewShown前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在DialogFragment中显示一个DatePicker:
  1. public class DatePickerDialogFragment extends DialogFragment {
  2. private OnDateSetListener dateSetListener = null;
  3. private String title = null;
  4.  
  5. public DatePickerDialogFragment() {}
  6.  
  7. public DatePickerDialogFragment(OnDateSetListener dateSetListener,String title) {
  8. this.dateSetListener = dateSetListener;
  9. this.title = title;
  10. }
  11.  
  12. public Dialog onCreateDialog(Bundle savedInstanceState) {
  13. Calendar calendar = Calendar.getInstance();
  14.  
  15. int year = calendar.get(Calendar.YEAR);
  16. int month = calendar.get(Calendar.MONTH);
  17. int day = calendar.get(Calendar.DAY_OF_MONTH);
  18.  
  19. DatePickerDialog datePickerDialog = new DatePickerDialog(this.getActivity(),this.dateSetListener,year,month,day);
  20. datePickerDialog.getDatePicker().setCalendarViewShown(false);
  21. datePickerDialog.setTitle(this.title);
  22.  
  23. return datePickerDialog;
  24. }
  25. }

不幸的是datePickerDialog.getDatePicker().setCalendarViewShown(false);被完全忽略了.我讨厌日历视图,因为它很丑陋且不舒服.那我怎么能禁用它呢?

解决方法

在我的“values-v21 / styles.xml”中,我修改了活动主题,如下所示隐藏日历&显示简单的datepicker微调器.您可能想要使用带有白色背景的可绘制的&圆角:
  1. <item name="android:datePickerDialogTheme">@style/style_date_picker_dialog</item>
  2. </style>
  3.  
  4.  
  5. <style name="style_date_picker_dialog" parent="@android:style/Theme.DeviceDefault.Light">
  6. <item name="android:windowIsFloating">true</item>
  7. <item name="android:windowBackground">@drawable/dialog_background</item>
  8. <item name="android:datePickerStyle">@style/style_datepicker</item>
  9. </style>
  10.  
  11. <style name="style_datepicker" parent="android:Widget.Material.Light.DatePicker">
  12. <item name="android:datePickerMode">spinner</item>
  13. </style>

猜你在找的Android相关文章