Poids de disposition Android

Je suis nouveau sur le développement Android et j’ai une question sur le réglage du poids dans une mise en page linéaire.

J’essaie de créer une ligne avec deux boutons personnalisés et un texte d’édition personnalisé. Le texte de modification ne doit occuper que la place de son contenu et les deux boutons doivent s’étendre horizontalement pour remplir le rest de l’espace disponible dans la ligne. Comme ça…

| [#Button++#] [#Button--#] [et] | 

Après plusieurs tentatives, c’est le plus proche de ce que je veux, même si cela semble trop compliqué.

 | [Button] [Button] [###ET###] | 

                  

Si je comprends bien, le paramétrage [android: layout_weight = “2”] pour les dispositions linéaires contenant les boutons devrait leur permettre de prendre plus de place que le texte modifié, mais il fait le contraire pour moi.

 | [Btn] [Btn] [#####et#####] | 

J’ai essayé tellement de combinaisons différentes que je ne peux même pas m’en souvenir et aucune n’a fonctionné.

Cela ne fonctionne pas car vous utilisez fill_parent comme largeur. Le poids est utilisé pour dissortingbuer l’espace vide restant ou pour enlever de l’espace lorsque la sum totale est supérieure à la valeur LinearLayout. Définissez vos largeurs sur 0dip et cela fonctionnera.

android:Layout_weight peut être utilisé lorsque vous n’attachez pas déjà une valeur de correction à votre largeur, comme fill_parent etc.

Faites quelque chose comme ça:

  

Pensez comme ça, ce sera plus simple

Si vous avez 3 boutons et que leur poids est 1,3,1 en conséquence, cela fonctionnera comme une table en HTML

Fournir 5 portions pour cette ligne: 1 portion pour le bouton 1, 3 portions pour le bouton 2 et 1 portion pour le bouton 1

Dans le linearLayout, définissez WeightSum = 2;

Et dissortingbuez le poids à ses enfants comme vous voulez qu’ils affichent. J’ai donné un poids = “1” à l’enfant. Les deux dissortingbuent donc la moitié du total.

      

les valeurs de poids 0-1 partagent la dissortingbution de l’espace disponible (après avoir défini layout_width = “0px”) proportionnellement à la valeur du poids. Les éléments de vue dont le poids n’est pas spécifié (pas d’entrée de poids) obtiennent un poids égal à 0, ce qui signifie qu’ils n’ont aucune extension.

Une alternative simple avec aucune entrée de poids nécessaire consiste à attacher un cadre de sélection à une vue avec du texte qui lui indique de passer du minimum nécessaire pour le texte (wrap_content) à l’espace disponible. EditText: android: layout_width =

Je suppose que la largeur de wrap_content sur wrap_content et que les deux boutons sont LinearLayout dans un LinearLayout dont la largeur est fill_parent et le poids défini sur 1.

Une autre raison que j’ai trouvée (aussi vague que cela puisse paraître). Le ci-dessous n’a pas fonctionné.

LinearLayout vertical

LinearLayout height fillparent + poids

LinearLayout height fillparent + poids

LinearLayout height fillparent + poids

EndLinearLayout

Qu’est-ce que le travail était

Disposition relative

LinearLayout vertical

LinearLayout height fillparent + poids

LinearLayout height fillparent + poids

LinearLayout height fillparent + poids

EndLinearLayout

EndRelativeLayout

Il semble vague par une disposition racine avec Linear et les poids sous elle ne fonctionnaient pas. Et quand je dis “ne fonctionnait pas”, je veux dire qu’après avoir visualisé la disposition graphique entre les différentes résolutions, la cohérence de l’écran a été énorme.