Est-il possible de changer le jeu de couleurs du sélecteur de date (et aussi du sélecteur de temps) pour Android 5.0?
J'ai essayé de définir les couleurs d'accent, mais cela ne fonctionne pas (avec et sans 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>
De l'original:
À quelque chose comme ça:
android
dialog
styles
background-color
Warpzit
la source
la source
Réponses:
La raison pour laquelle la suggestion de Neil aboutit à un plein écran
DatePicker
est le choix du thème parent:De plus, si vous suivez cette voie, vous devez spécifier le thème lors de la création du
DatePickerDialog
:Cela, à mon avis, n'est pas bon. On devrait essayer de garder le style hors de java et dans styles.xml / themes.xml.
Je suis d'accord que la suggestion de Neil, avec un peu de changement (changer le thème parent pour dire,
Theme.Material.Light.Dialog
) vous donnera le résultat souhaité. Mais voici l'autre manière:Lors de la première inspection, nous trouvons
datePickerStyle
qui définit des choses telles que:headerBackground
(ce que vous essayez de changer)dayOfWeekBackground
, et quelques autres couleurs de texte et styles de texte.Le remplacement de cet attribut dans le thème de votre application ne fonctionnera pas.
DatePickerDialog
utilise un thème distinct assignable par l'attributdatePickerDialogTheme
. Donc, pour que nos modifications prennent effet, nous devons remplacer à l'datePickerStyle
intérieur d'un remplacementdatePickerDialogTheme
.Et c'est parti:
Remplacez
datePickerDialogTheme
le thème de base de votre application:Définissez
MyDatePickerDialogTheme
. Le choix du thème parent dépendra du thème de base de votre application: il peut s'agir de l'unTheme.Material.Dialog
ou l' autreTheme.Material.Light.Dialog
:Nous avons remplacé
datePickerStyle
le styleMyDatePickerStyle
. Le choix du parent dépendra encore une fois du thème de base de votre application: soitWidget.Material.DatePicker
ouWidget.Material.Light.DatePicker
. Définissez-le selon vos besoins:Actuellement, nous ne remplaçons que
headerBackground
ce qui est défini par défaut?attr/colorAccent
(c'est aussi pourquoi la suggestion de Neil fonctionne pour changer l'arrière-plan). Mais il y a pas mal de personnalisation possible:Si vous ne voulez pas autant de contrôle (personnalisation), vous n'avez pas besoin de remplacer
datePickerStyle
.colorAccent
contrôle la plupart desDatePicker's
couleurs. Donc, le remplacement juste à l'colorAccent
intérieurMyDatePickerDialogTheme
devrait fonctionner:Redéfinition
colorAccent
vous donne l'avantage de changerOK
et lesCANCEL
couleurs du texte aussi bien. Pas mal.De cette façon, vous n'avez pas à fournir d'informations de style au
DatePickerDialog's
constructeur. Tout a été correctement câblé:la source
Essayez ceci.
Le code
Le style dans votre fichier styles.xml
EDIT - Changement du thème en Theme.AppCompat.Light.Dialog comme suggéré
la source
parent="Theme.AppCompat.Light.Dialog"
place deparent="Theme.AppCompat.Light"
Créer un nouveau style
Code Java:
Le thème parent est la clé ici. Choisissez votre couleur
Résultat:
la source
essaie ça, travaille pour moi
Mettez les deux options,
colorAccent
etandroid:colorAccent
la source
Juste pour mentionner, vous pouvez également utiliser le thème par défaut comme à la
android.R.style.Theme_DeviceDefault_Light_Dialog
place.la source
Vous n'avez pas de thème de création, écrivez-le simplement dans votre objet de création de dialogue
suivez ceci, cela vous donnera tous les styles de sélecteur de date de type, cela fonctionne vraiment
http://www.android-examples.com/change-datepickerdialog-theme-in-android-using-dialogfragment/
la source
J'ai eu le problème que les boutons de sélection de temps n'ont pas été vus sur l'écran de l'API 24 sous Android. (API 21+) il est résolu par
la source
la source
Pour changer la couleur du texte de l'élément de liste Année (SPÉCIFIQUE POUR ANDROID 5.0)
Définissez simplement une certaine couleur de texte dans votre style de dialogue de sélection de date. Pour une raison quelconque, le réglage de l'indicateur
yearListItemTextAppearance
ne reflète aucun changement sur la liste des années.la source