¿Es posible cambiar el esquema de color del selector de fecha (y también el selector de tiempo) para Android 5.0?
Intenté configurar los colores de acento, pero esto no funciona (con y sin android:):
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">@color/purple</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/purple_tint</item>
<!-- colorAccent is used as the default value for colorControlActivated
     which is used to tint widgets -->
<item name="colorAccent">@color/purple_tint</item>
Del original:

A algo como esto:

                    
                        android
                                dialog
                                styles
                                background-color
                                
                    
                    
                        Warpzit
fuente
                
                fuente

Respuestas:
La razón por la que la sugerencia de Neil da como resultado una pantalla completa
DatePickeres la elección del tema principal:Además, si sigue esta ruta, debe especificar el tema mientras crea
DatePickerDialog:Esto, en mi opinión, no es bueno. Uno debería intentar mantener el estilo fuera de Java y dentro de styles.xml / themes.xml.
Estoy de acuerdo en que la sugerencia de Neil, con un poco de cambio (cambiando el tema principal para decir,
Theme.Material.Light.Dialog) obtendrá el resultado deseado. Pero aquí está la otra forma:En la primera inspección, nos encontramos con
datePickerStyleque define cosas como:headerBackground(lo que está tratando de cambiar)dayOfWeekBackground, y algunos otros colores de texto y estilos de texto.No funcionará anular este atributo en el tema de su aplicación.
DatePickerDialogutiliza un tema independiente asignable por el atributodatePickerDialogTheme. Por lo tanto, para que nuestros cambios surtan efecto, debemos anulardatePickerStyledentro de un anuladodatePickerDialogTheme.Aquí vamos:
Anular
datePickerDialogThemedentro del tema base de su aplicación:Definir
MyDatePickerDialogTheme. La elección del tema principal dependerá de cuál sea el tema base de su aplicación: podría serTheme.Material.DialogoTheme.Material.Light.Dialog:Hemos anulado
datePickerStylecon el estiloMyDatePickerStyle. La elección del padre dependerá una vez más de cuál es el tema base de su aplicación:Widget.Material.DatePickeroWidget.Material.Light.DatePicker. Defínalo según sus requisitos:Actualmente, solo estamos anulando lo
headerBackgroundque está configurado de forma predeterminada en?attr/colorAccent(esta es también la razón por la que la sugerencia de Neil funciona para cambiar el fondo). Pero hay muchas posibilidades de personalización:Si no desea tanto control (personalización), no necesita anular
datePickerStyle.colorAccentcontrola la mayoría de losDatePicker'scolores. Entonces, anular solo elcolorAccentinteriorMyDatePickerDialogThemedebería funcionar:Anulando
colorAccentle da el beneficio adicional de cambiarOKyCANCELlos colores del texto también. No está mal.De esta manera, no tiene que proporcionar ninguna información de estilo al
DatePickerDialog'sconstructor. Todo ha sido cableado correctamente:fuente
Pruébelo.
El código
El estilo en su archivo styles.xml
EDITAR: tema cambiado a Theme.AppCompat.Light.Dialog como se sugiere
fuente
parent="Theme.AppCompat.Light.Dialog"lugar deparent="Theme.AppCompat.Light"Crea un nuevo estilo
Código Java:
El tema principal es la clave aquí. Elige tu color Acento
Resultado:
fuente
prueba esto, trabaja para mi
Pon las dos opciones
colorAccentyandroid:colorAccentfuente
Solo por mencionar, también puede usar el tema predeterminado como en su
android.R.style.Theme_DeviceDefault_Light_Dialoglugar.fuente
No tienes un tema de creación, solo escríbelo en tu objeto de creación de diálogo
siga esto, le dará todo tipo de estilo de selector de fecha, realmente funciona
http://www.android-examples.com/change-datepickerdialog-theme-in-android-using-dialogfragment/
fuente
Tuve el problema de que los botones del selector de tiempo no se veían en la pantalla de API 24 en Android. (API 21+) se resuelve mediante
fuente
fuente
Para cambiar el color del texto del elemento de la lista de año (ESPECÍFICO PARA ANDROID 5.0)
Simplemente establezca cierto color de texto en el estilo de diálogo del selector de fecha. Por alguna razón, la configuración de la bandera
yearListItemTextAppearanceno refleja ningún cambio en la lista de años.fuente