11
votes

Bouton espacé uniformément dans la mise en page

J'essaie de faire 4 boutons, uniformément espacé dans une vue de portrait sur Android.

L'espace doit être augmenté en fonction de la taille de l'écran, avec une quantité d'espace uniforme entre chaque bouton et les frontières.

J'ai essayé d'utiliser la disposition linéaire, le poids et la gravité de la mise en page, mais il semble que je ne puisse pas centrer le bouton verticalement.

est-ce un bug de la mise en page Android? Plus probablement est juste moi. xxx


0 commentaires

3 Réponses :


1
votes

Vous semblez envelopper tous les boutons d'un autre linearlayout au lieu de les garder dans le parent linearlayout .

Supprimer tous ceux qui sont immédiats linearlayout de sorte que android: layout_weight prend effet.


Atteindre l'étirement et l'espacement

  • Utilisez Android: Layout_width = "Fill_Parent" dans les boutons eux-mêmes
  • Spécifiez la marge pour l'espacement

2 commentaires

Ceci étirer simplement les boutons ... Je veux que les boutons soient petits avec de l'espace autour d'eux ... chacun au centre d'un rectangle


La spécification de la marge est ce que je voulais éviter ... vous devez mettre une dimension et même si c'est dans la trempette, l'effet final n'est pas le même sur chaque affichage ... N'y a-t-il pas une manière automatique comme avec du poids?



20
votes

Essayez quelque chose comme ceci: xxx

Les modifications apportées à partir de votre présentation d'origine sont que chaque interne linearlayout a une hauteur de zéro et une gravité (pas layout_gravité) de centre. Cela devrait causer que toutes les dispositions linéaires intérieures aient la même hauteur, sévissent uniformément la hauteur des parents, sans étirer les boutons eux-mêmes.


2 commentaires

De cette façon, cela n'a pas fonctionné ... mais si vous spécifiez layout_gravity et la gravité en tant que centre, il a fonctionné .... Pour une interface XML Android, est mal documentée ....


Il devrait être Android: Layout_gravity = "Centre" Pas Android: Gravity = "Centre". Il n'est pas nécessaire d'utiliser Android: Gravity = "Centre" ici. La balise de gravité affecte le positionnement de son contenu pendant que Layout_gravity affecte la position de se positionner à son parent.



3
votes

Essayez ceci: xxx

Ceci permettra de fixer la moitié de la moitié de la longueur des écrans.


1 commentaires

Cela va étirer les boutons cependant.