11
votes

Aligner le bord gauche au centre - relativenité

J'ai l'exigence suivante (radicalement simplifié):

Entrez la description de l'image ici

Texte 2 doit partir du centre de l'écran.

Je ne pouvais atteindre cela qu'à utiliser linearlayout's's : XXX

Depuis que je l'ai déjà trop de vues imbriquées (obtenant ainsi un myfile.xml a plus de 10 niveaux, mauvais pour la performance avertissement) J'aimerais savoir si je peux Obtenez le même résultat avec un relativenelayoutout . J'ai traversé le documentation mais je n'ai pas pu trouver de Propriété qui me permet de moi.


2 commentaires

Utilisez deux linearlayouts pour cette ligne et utilisez des poids de mise en page 50% du poids de la somme


Si j'ajoute une troisième mise en page, il n'est pas allé sous le premier


5 Réponses :


0
votes

Vous pouvez l'aligner à gauche à gauche à l'aide d'AlignparentLeft = "vrai"


0 commentaires

0
votes

Essayez avec le code ci-dessous (non testé): xxx


0 commentaires

0
votes

ne pouvait pas comprendre le problème exact. Ce que vous voulez, c'est text2 du centre, d'abord utiliser une mise en page relative car il est plus facile de faire des stages en présentation relative plutôt que d'une disposition linéaire qui place l'une après l'autre avec une seule orientation définie. Et en ce que vous pouvez utiliser un centre de propriété_in_parent sur true, puis alignez le texte1 à sa gauche. J'espère que cela répond à votre problème.


0 commentaires

37
votes

Ceci est très facile si vous acceptez une vue vide de 0DP par 0DP en tant que surcharge. À mon avis, c'est mieux que d'avoir trop de vues imbriquées, mais cela peut servir de référence pour les autres vues.

Utilisez un espace vide (de 0x0 px). Si vous centrez sur ce espace horizontalement, vous pouvez l'utiliser comme référence comme: xxx


6 commentaires

Intéressant! S'il n'y a rien de mieux, j'accepterai celui-ci, bien que mannequin me donne toujours cet avertissement.


OK, vous avez déjà 10 niveaux de niveaux. Dans ce cas, je préférerais certainement cette option (qui ajoute 1 "inutile" linearlayout), sur les poids = 1 options (qui ajoute 2 "inutile" linearlayouts && ajoute un niveau imbriqué supplémentaire)! Bonne chance


En effet! BTW Il est difficile de ne pas aller au niveau 10 lorsque vous utilisez Tabhost


Je recommanderais d'utiliser espace au lieu d'un vide linearlayout . Testé avec espace avec largeur et hauteur au 0dp , a fonctionné comme prévu. :)


Je n'étais pas au courant de la vue spatiale, c'est génial! M'a sauvé la peine d'imbriquer deux mises en page et d'utiliser du centre


Un avertissement: espace nécessite le niveau d'API 14. La solution d'origine d'un 1x1 linearlayout fonctionne si une compatibilité avec les API antérieures est nécessaire.



0
votes

Vous devrez peut-être utiliser un mannequin afficher qui a android: layout_centerhorizontal = "true" et android: layout_width = "0DP" avec un identifiant. Ajoutez ensuite votre textview avec l'attribut android: layout_torightof = "@ id / id_of_dumy_view" pour la positionner. Il pourrait y avoir un moyen plus facile de le faire, mais je ne suis pas capable de tester en ce moment.


0 commentaires