42 votes

Impossible de former une chaîne entre deux vues / widgets dans Android Studio

Quand je suis à l'aide de l'éditeur de mise en Android Studio, et j'ai essayer de faire une chaîne (bidirectionnel contrainte) entre un EditText Vue et un Bouton de Vue à l'aide de la contrainte des ancres, il ne fait pas de la chaîne.

Il fait seulement une contrainte, si j'essaie de contraindre une Vue à l'autre.

Je suis en train de la chaîne du côté droit de l' EditText sur le côté gauche du Bouton.

C'est ce que ma Mise en page de l'Éditeur ressemble à:

Layout Editor

19voto

Swud Points 201

J'essayais de comprendre cela aussi. J'ai découvert qu'une façon de le faire est de sélectionner les deux vues, puis de cliquer avec le bouton droit de la souris et de sélectionner Centrer horizontalement. Cela crée la chaîne, mais vous devez ensuite ajuster les autres contraintes en conséquence. Je suis nouveau sur Android, donc je suis sûr qu'il y aura d'autres moyens ....

12voto

Gustav Eriksson Points 121

J'ai eu le même problème. Résolu en entrant dans le XML comme indiqué dans le tutoriel: https://developer.android.com/training/basics/firstapp/building-ui.html

Dans le didacticiel, cliquez sur "Voir le XML de mise en page final" et comparez. Mon XML était manquant:

 app:layout_constraintLeft_toRightOf="@+id/editText"
 

7voto

Ori Elkobi Points 51

Dans Android Studio 3.0.1, choisissez les deux objets (sous l’onglet Création xml) et cliquez avec le bouton droit de la souris sur l’un d’eux. Vous aurez ensuite sous «chaîne» deux options: l’une pour enchaîner horizontalement et l’autre pour enchaîner verticalement.

entrez la description de l'image ici

3voto

Canato Points 940

J'ai une solution, ne sera probablement pas le meilleur jusqu'à ce que quelqu'un de vraiment répondre correctement, mais il fonctionne. J'espère que cela aide les autres gars qui coincé dans le même endroit que moi, de sorte que vous pouvez continue le travail.

Ressemble l'interface d'android studio ne fonctionne pas correctement quand il s'agissait de créer des chaînes. Certaines options de gens ici, le travail de 2 ou 3 éléments, mais je dispose de 5 éléments.

La réponse est donc de résoudre ce dans le code XML.

Mes pas sont pour Horizontal arrangement, si vous voulez la verticale, il suffit de changer à Droite/à Gauche pour Haut/Bas

J'ai mis tous les éléments dans l'endroit que je veux et supprimer toutes les connexions. (Que dans mon cas, j'ai relier le haut et le bas de sorte qu'ils peuvent être dans le milieu.)

Puis-je connecter le premier élément dans la gauche et le dernier élément dans le droit. Et connectez le à droite de chaque élément dans le côté gauche de l'élément suivant.

app:layout_constraintRight_toLeftOf="@id/right_element"

L'Image des éléments se connecter normal, pas de chaîne

Après cela je vais dans le code et de le mettre manuellement la connexion à la gauche de l'élément.

app:layout_constraintLeft_toRightOf="@+id/left_element"

Et la chaîne a été créé. L'Image des éléments se connecter avec la chaîne

J'espère que cette aide, désolé de ne pas poster les photos, je n'ai pas de réputation encore assez XD.

1voto

Anurag Points 5

Résolu en ajoutant des contraintes dans le texte de saisie (app: layout_constraintRight_toLeftOf = "@ + id / button") et le bouton (app: layout_constraintBaseline_toBaselineOf = "@ + id / editText")

Exemple complet comme ci-dessous

 <EditText
    android:id="@+id/editText"
    android:layout_width="245dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginStart="16dp"
    android:ems="10"
    app:layout_constraintRight_toLeftOf="@+id/button"
    android:hint="@string/edit_message"
    android:inputType="textPersonName"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginTop="16dp"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    android:layout_marginRight="16dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBaseline_toBaselineOf="@+id/editText"
    app:layout_constraintLeft_toRightOf="@+id/editText"
    android:layout_marginLeft="16dp" />
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X