J'utilise une activité avec l'ensemble de thèmes de dialogue et je souhaite qu'elle soit en plein écran. J'ai essayé toutes sortes de choses, même en passant par WindowManager pour agrandir manuellement la fenêtre en pleine largeur et en hauteur, mais rien ne fonctionne.
Apparemment, une fenêtre de dialogue (ou une activité avec le thème de dialogue) ne se développera qu'en fonction de son contenu, mais même cela ne fonctionne pas toujours. Par exemple, je montre un cercle de barre de progression dont la largeur et la hauteur sont définies sur FILL_PARENT (tout comme son conteneur de disposition), mais la boîte de dialogue s'enroule autour de la barre de progression beaucoup plus petite au lieu de remplir l'écran.
Il doit y avoir un moyen d'afficher quelque chose de petit à l'intérieur d'une fenêtre de dialogue, mais est-ce qu'il se déplie en plein écran sans que son contenu ne soit également redimensionné?
la source
Réponses:
J'ai trouvé la solution:
Dans votre activité qui a le
Theme.Dialog
style défini, procédez comme suit:Il est important que vous appeliez
Window.setLayout()
après avoir appelésetContentView()
, sinon cela ne fonctionnera pas.la source
import android.view.ViewGroup.LayoutParams;
Vous pouvez ajouter ces valeurs à votre style android: windowMinWidthMajor et android: windowMinWidthMinor
la source
Je veux juste remplir seulement 80% de l'écran pour cela j'ai fait comme ça ci-dessous
cela ne fonctionne que lorsque je mets la ligne getwindow (). setLayout ... sous setContentView (..)
merci @Matthias
la source
Enveloppez votre dialog_custom_layout.xml dans RelativeLayout au lieu de toute autre mise en page. Cela a fonctionné pour moi.
la source
Pour le dialogue Cela peut être utile pour quelqu'un. Je veux qu'une boîte de dialogue prenne toute la largeur de l'écran. beaucoup cherché mais rien n'a été trouvé utile. Finalement, cela a fonctionné pour moi:
après avoir ajouté cela, ma boîte de dialogue apparaît dans toute la largeur de l'écran.
la source
Cette réponse est une solution de contournement pour ceux qui utilisent "Theme.AppCompat.Dialog" ou tout autre descendant de "Theme.AppCompat.Dialog" comme "Theme.AppCompat.Light.Dialog", "Theme.AppCompat.DayNight.Dialog", etc. Je dois moi-même utiliser la boîte de dialogue AppCompat car j'utilise AppCompatActivity comme l'étend pour toutes mes activités. Il y aura un problème qui fera que la boîte de dialogue a un remplissage sur tous les côtés (haut, droite, bas et gauche) si nous utilisons la réponse acceptée.
Sur le style de votre activité, ajoutez ce code
Comme vous le remarquerez peut-être, le problème qui génère le remplissage de notre boîte de dialogue est "android: windowBackground", donc ici je rends l'arrière-plan de la fenêtre à null.
la source
Définissez une largeur minimale pour la mise en page la plus haute.
Par exemple:
la source
La réponse de Matthias est généralement juste, mais elle ne remplit toujours pas tout l'écran car elle a un petit rembourrage de chaque côté (souligné par @Holmes). En plus de son code, nous pourrions résoudre ce problème en étendant le style Theme.Dialog et en ajoutant des attributs comme celui-ci.
Ensuite, nous déclarons simplement l'activité avec le thème défini sur
MyDialog
:la source
Ce serait utile pour quelqu'un comme moi. Créer un style de dialogue personnalisé:
Dans
AndroidManifest.xml
le thème du jeu de fichiers pour l'activité souhaitée:C'est tout, pas besoin d'appeler des méthodes par programmation.
la source
Dans votre fichier manifeste où notre activité est définie
sans barre d'action
la source