DatePicker en un DialogFragment ignora setCalendarViewShown

Quería mostrar un DatePicker en un DialogFragment:

public class DatePickerDialogFragment extends DialogFragment { private OnDateSetListener dateSetListener = null; private String title = null; public DatePickerDialogFragment() {} public DatePickerDialogFragment(OnDateSetListener dateSetListener, String title) { this.dateSetListener = dateSetListener; this.title = title; } public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); DatePickerDialog datePickerDialog = new DatePickerDialog(this.getActivity(), this.dateSetListener, year, month, day); datePickerDialog.getDatePicker().setCalendarViewShown(false); datePickerDialog.setTitle(this.title); return datePickerDialog; } } 

Lamentablemente datePickerDialog.getDatePicker().setCalendarViewShown(false); Es completamente ignorado. Odio la vista del calendario porque es feo e incómodo. Entonces, ¿cómo puedo inhabilitarlo?

En mis "values-v21 / styles.xml" He modificado el tema de la actividad como a continuación es el calendario oculto y muestra spinner datepicker simple. Es posible que desee utilizar un dibujable con fondo blanco y esquinas redondeadas:

  <item name="android:datePickerDialogTheme">@style/style_date_picker_dialog</item> </style> <style name="style_date_picker_dialog" parent="@android:style/Theme.DeviceDefault.Light"> <item name="android:windowIsFloating">true</item> <item name="android:windowBackground">@drawable/dialog_background</item> <item name="android:datePickerStyle">@style/style_datepicker</item> </style> <style name="style_datepicker" parent="android:Widget.Material.Light.DatePicker"> <item name="android:datePickerMode">spinner</item> </style> 

Esto se ha respondido en otro lugar: Android Material Design Inline Datepicker cuestión , y tratando de resolverlo con la respuesta aceptada me consiguió ningún lugar.

Básicamente usted necesita hacer:

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

Porque setCalandarShown(); Ha quedado obsoleto.

  • BetterPickers sin una biblioteca de soporte
  • Cómo devolver el valor de la fecha de DatePickerDialog en Android?
  • Problema de compatibilidad de Android DatePicker con la biblioteca MonkeyTalk
  • Cómo mostrar la fecha seleccionada en EditText utilizando DialogFragment
  • Android: Cómo obtener valores de la selección de fecha y hora
  • DatePicker muestra el valor incorrecto del mes
  • DatePickerDialog.OnDateSetListener no obtiene una devolución de llamada en dispositivos Samsung
  • Diálogo de divisor Android
  • Establecer idioma en francés en android DatePickerDialog
  • SetSpinnersShown y setCalendarViewShown en DatePicker obsoleto en el nivel 24 de API
  • Android: ¿Cómo cambiar el formato de fecha de vista de DatePicker de MM / dd / aaaa a dd / MM / aaaa?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.