J'ai ajouté la conception matérielle appCompat à mon application et il semble que les boîtes de dialogue d'alerte n'utilisent pas mes couleurs primaires, primairesDark ou accentuées.
Voici mon style de base:
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
</style>
Sur la base de ma compréhension, le texte du bouton de dialogue devrait également utiliser ces couleurs. Ai-je tort de comprendre ou dois-je faire autre chose?
Solution:
La réponse marquée m'a mis sur la bonne voie.
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:actionModeBackground">@color/apptheme_color_dark</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
<item name="sdlDialogStyle">@style/DialogStyleLight</item>
<item name="android:seekBarStyle">@style/SeekBarNavyTheme</item>
</style>
<style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
</style>
android
material-design
android-support-library
android-appcompat
material-components-android
Matthieu
la source
la source
Réponses:
MISE À JOUR EN août 2019 AVEC les composants Material pour la bibliothèque Android:
Avec les nouveaux composants Material pour la bibliothèque Android, vous pouvez utiliser la nouvelle
com.google.android.material.dialog.MaterialAlertDialogBuilder
classe, qui s'étend de laandroidx.appcompat.AlertDialog.Builder
classe existante et prend en charge les dernières spécifications de Material Design.Utilisez simplement quelque chose comme ceci:
Vous pouvez personnaliser les couleurs en étendant le
ThemeOverlay.MaterialComponents.MaterialAlertDialog
style:Pour appliquer votre style personnalisé, utilisez simplement le constructeur:
Pour personnaliser les boutons, le titre et le corps du texte, consultez cet article pour plus de détails.
Vous pouvez également modifier globalement le style de votre thème d'application:
AVEC SUPPORT LIBRARY et APPCOMPAT THEME:
Avec le nouveau,
AppCompat v22.1
vous pouvez utiliser le nouveau android.support.v7.app.AlertDialog .Utilisez simplement un code comme celui-ci:
Et utilisez un style comme celui-ci:
Sinon, vous pouvez définir dans votre thème actuel:
puis dans votre code:
Voici le AlertDialog sur Kitkat:
la source
<item name="android:alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
lors de l'initialisation du générateur de dialogue, passez le deuxième paramètre comme thème. Il affichera automatiquement la conception du matériau avec le niveau API 21.
ou,
la source
AppCompat ne fait pas cela pour les dialogues (pas encore du moins)
EDIT: c'est le cas maintenant. assurez-vous d'utiliser
android.support.v7.app.AlertDialog
la source
import app.AlertDialog
pas donné celui appCompat. J'ai essayé de comprendre ce qui ne va pas pendant environ 40 minutes avant de le vérifier ... Merde, google!Vous pouvez envisager ce projet: https://github.com/fengdai/AlertDialogPro
Il peut vous fournir des boîtes de dialogue d'alerte de thème matériel presque identiques à celles de la sucette. Compatible avec Android 2.1.
la source
Vous pourriez utiliser
Bibliothèque de conception de matériaux
Bibliothèque de conception de matériaux conçue pour de jolies boîtes de dialogue d'alerte , des boutons et d'autres choses comme des collations. Actuellement, il est très développé.
Guide, code, exemple - https://github.com/navasmdc/MaterialDesignLibrary
Guide comment ajouter une bibliothèque à Android Studio 1.0 - Comment importer une bibliothèque de conception de matériaux dans Android Studio?
.
Bon codage;)
la source
Essayez cette bibliothèque:
https://github.com/avast/android-styled-dialogs
Il est basé sur
DialogFragments
au lieu deAlertDialogs
(comme celui de @afollestad). Le principal avantage: les dialogues ne sont pas supprimés après la rotation et les rappels fonctionnent toujours.la source
Pour une raison quelconque, android: textColor ne semble mettre à jour que la couleur du titre. Vous pouvez modifier la couleur du texte du message en utilisant un
la source
Boîtes de dialogue d'alerte de style Material Design: Police personnalisée, Bouton, Couleur et forme, ..
Style:
Production:
la source