Lorsque nous affichons un AlertDialog dans Android, il apparaît au centre de l'écran. Y a-t-il un moyen de changer la position?
android
android-layout
android-ui
gypsicoder
la source
la source
wmlp.x = 100; //x position wmlp.y = 100;
vous venez de gravité ensemblewmlp.gravity = Gravity.TOP | Gravity.LEFT;
est assezSi, par exemple, vous souhaitez déplacer la boîte de dialogue de progression un peu plus bas et ne pas définir la position exacte du pixel, cela suffit:
la source
Pour que le réglage devienne un effet d'information, j'ai ajouté le code suivant
dialog.getWindow().setAttributes(wmlp);
après avoir changé la valeur de wmlp dans la réponse de gypsicoder, ou le réglage de wmlp ne prend pas effet par mon test.
la source
Ces réponses déplaceront la position de AlertDialog, cependant, la position de la boîte de dialogue affichée inclura également le remplissage autour de la boîte de dialogue.
Si vous souhaitez vous débarrasser de ce remplissage (par exemple, pour placer votre boîte de dialogue au ras du bas de l'écran), vous devrez également remplacer le style AlertDialog par défaut dans votre styles.xml pour définir windowBackground sur null, comme ceci :
En plus de définir les Window.LayoutParameters comme décrit dans la réponse acceptée.
Un cri spécial à @David Caunt dont la réponse à: supprimer la bordure, le rembourrage de Dialog a complété cette image.
la source