Lors de la création du, AlertDialog
vous pouvez définir un thème à utiliser.
Exemple - Création de la boîte de dialogue
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
styles.xml - Style personnalisé
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
Résultat
Éditer
Afin de modifier l'apparence du titre, vous pouvez procéder comme suit. Ajoutez d'abord un nouveau style:
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
puis référencez simplement ce style dans votre MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
De cette façon, vous pouvez définir un autre textColor
pour le message via android:textColorPrimary
et un autre pour le titre via le style.
appcompat-v7
- cela ramène la compatibilité ascendante des composants plus récents au niveau API 7 (Android 2.1)Pour utiliser un thème pour toute l'application et ne pas utiliser le deuxième paramètre pour styliser votre boîte de dialogue
Sur mon application, l'utilisation d'un accent de couleur dans le thème n'affiche pas les boutons alertDialog avec le thème colorAccent, je dois ajouter un style de dialogue dans le thème.
la source
Si vous souhaitez utiliser le nouveau android.support.v7.app.AlertDialog et avoir des couleurs différentes pour les boutons et également une disposition personnalisée, jetez un œil à mon https://gist.github.com/JoachimR/6bfbc175d5c8116d411e
la source
Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
. Je ne veux pas aller jusqu'à sous-classer l'adaptateur et en peaufiner la vue.Suivez réponse @reVerse mais dans mon cas, j'avais déjà une propriété dans mon
AppTheme
commeDonc mon dialogue ressemblera à
Je l'ai résolu par
1) Changer l'importation de
android.app.AlertDialog
àandroid.support.v7.app.AlertDialog
2) Je remplace la propriété 2
AppTheme
avec une valeur nulle.
J'espère que cela aidera un autre peuple
la source
Si vous êtes comme moi, vous souhaitez simplement modifier certaines des couleurs dans AppCompat, et la seule couleur que vous devez modifier de manière unique dans la boîte de dialogue est l'arrière-plan. Ensuite, tout ce que vous avez à faire est de définir une couleur pour
colorBackgroundFloating
.Voici mon thème de base qui modifie simplement certaines couleurs sans thèmes imbriqués:
la source
la source