Comment supprimer le fond noir d'une boîte de dialogue sous Android. La photo montre le problème.
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
android
android-dialog
Programmeur
la source
la source
Réponses:
Ajoutez ce code
Ou celui-ci à la place:
la source
dialog.getWindow().setBackgroundDrawable(new ColorDrawableResource(R.color.transparent));
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
utiliser en java
J'espère vous aider!
la source
J'ai fait face au problème le plus simple et la solution que j'ai trouvée consistait à appliquer un THÈME bachground transparent. Écrivez ces lignes dans vos styles
Et puis ajoutez
dans votre fichier manifeste principal, à l'intérieur du bloc de l'activité de dialogue.
Plus dans votre ensemble XML d'activité de dialogue
la source
D'une manière ou d'une autre, la solution Zacharias n'a pas fonctionné pour moi, j'ai donc utilisé le thème ci-dessous pour résoudre ce problème ...
On peut définir ce thème pour dialoguer comme ci-dessous
Prendre plaisir!!
la source
Vous pouvez utiliser:
Et voici le document:
la source
La fenêtre de dialogue remplit la couleur d'arrière-plan noire ou la couleur de thème par défaut, vous devez donc définir l'
TRANSPARENT
arrière-plan dans la boîte de dialogue. Essayez le code ci-dessous: -la source
si vous voulez détruire le fond sombre du dialogue, utilisez ceci
la source
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Objects.requireNonNull(alertDialog.getWindow()).setDimAmount(0); }
Un problème que j'ai trouvé avec toutes les réponses existantes est que les marges ne sont pas préservées. En effet, ils remplacent tous l'
android:windowBackground
attribut, qui est responsable des marges, par une couleur unie. Cependant, j'ai creusé dans le SDK Android et trouvé l'arrière-plan de la fenêtre par défaut dessinable, et l'ai légèrement modifié pour permettre des dialogues transparents.Tout d'abord, copiez /platforms/android-22/data/res/drawable/dialog_background_material.xml dans votre projet. Ou copiez simplement ces lignes dans un nouveau fichier:
Notez que ce
android:color
paramètre est défini sur?attr/colorBackground
. Il s'agit du gris / blanc uni par défaut que vous voyez. Pour permettre à la couleur définie dansandroid:background
votre style personnalisé d'être transparente et d'afficher la transparence, tout ce que nous avons à faire est de passer?attr/colorBackground
à@android:color/transparent
. Maintenant, cela ressemblera à ceci:Après cela, accédez à votre thème et ajoutez ceci:
Assurez-vous de remplacer
newly_created_background_name
par le nom réel du fichier dessinable que vous venez de créer et de le remplacersome_transparent_color
par l'arrière-plan transparent souhaité.Après cela, tout ce que nous devons faire est de définir le thème. Utilisez-le lors de la création de
AlertDialog.Builder
:Ensuite, construisez, créez et affichez la boîte de dialogue comme d'habitude!
la source
Même solution que zGnep mais en utilisant xml:
la source
Essayez ceci dans votre code:
ça marchera définitivement ... dans mon cas ...! mon ami
la source
C'est ce que j'ai fait pour obtenir la translucidité avec AlertDialog.
Créé un style personnalisé:
Et puis créez la boîte de dialogue avec:
la source
Dans mon cas, la solution fonctionne comme ceci:
Et en plus en Xml de dialogue personnalisé:
la source
utilisez ce code ça marche avec moi:
la source
Définissez ces codes de style dans le style
Et changez simplement false en vrai en dessous de la ligne
Cela obscurcira votre arrière-plan.
la source
Attention: n'utilisez pas le générateur pour changer l'arrière-plan.
changer pour
Lorsque vous utilisez Dialog.builder, il ne donne aucune
getWindow()
option.la source
c'est ma façon, vous pouvez essayer!
la source
Si vous avez prolongé la
DialogFrament
classe, vous pouvez définir le thème avec:Et puis créez le thème personnalisé dans votre fichier styles.xml (voir la réponse de @ LongLv pour les paramètres)
N'oubliez pas d'ajouter
<item name="android:windowCloseOnTouchOutside">true</item>
si vous souhaitez que la boîte de dialogue se ferme si l'utilisateur touche en dehors de la boîte de dialogue.la source
Pour toute personne utilisant une boîte de dialogue personnalisée avec une classe personnalisée, vous devez modifier la transparence de la classe, ajoutez cette ligne dans onCreate ():
la source
dialog.getWindow (). setBackgroundDrawable (nouveau ColorDrawable (ContextCompat.getColor (ctx, android.R.color.transparent)));
la source
Assure-toi
R.layout.themechanger
n'y a pas de couleur d'arrière-plan car par défaut, la boîte de dialogue a une couleur d'arrière-plan par défaut.Vous devez également ajouter
dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));
et enfin
la source