it-swarm.com.de

In Android Studio kann keine Kette zwischen zwei Ansichten/Widgets gebildet werden

Wenn ich den Layout-Editor in Android Studio verwende und versuche, eine Kette (bidirektionale Einschränkung) zwischen einem EditText View und einem Button View mithilfe der Integritätsanker zu erstellen , macht die Kette nicht. 

Es macht nur eine Einschränkung, wenn ich versuche, eine View auf die andere zu beschränken.

Ich versuche, die rechte Seite des EditText an die linke Seite des Button zu ketten. 

So sieht mein Layout-Editor aus:

Layout Editor

41
C.Kraz

Ich versuchte auch das herauszufinden. Ich habe entdeckt, dass eine Möglichkeit besteht, beide Ansichten auszuwählen, dann mit der rechten Maustaste zu klicken und horizontal zentrieren auszuwählen. Dadurch wird die Kette erstellt, aber dann müssen Sie alle anderen Einschränkungen entsprechend anpassen. Ich bin neu bei Android, also bin ich mir sicher, dass es auch andere Wege geben wird.

17
Swud

Ich hatte das gleiche Problem. Sie haben dieses Problem gelöst, indem Sie in das XML eingehen, wie im Tutorial beschrieben: https://developer.Android.com/training/basics/firstapp/building-ui.html

Klicken Sie im Lernprogramm auf "Endgültiges Layout anzeigen" und vergleichen Sie. Mein XML fehlte:

app:layout_constraintLeft_toRightOf="@+id/editText"
12
Gustav Eriksson

Wählen Sie in Android Studio 3.0.1 die beiden Objekte (auf der Registerkarte "XML-Design") aus, und klicken Sie mit der rechten Maustaste auf eines davon. Sie haben dann unter "Kette" zwei Optionen: eine zum horizontalen Verketten und als zweites zum vertikalen Verketten.

 enter image description here

5
Ori Elkobi

Ich habe eine Lösung bekommen, die wahrscheinlich nicht die beste ist, bis jemand wirklich richtig antwortet, aber funktioniert. Ich hoffe, das hilft anderen Jungs, die an der gleichen Stelle wie ich bleiben, damit Sie die Arbeit fortsetzen können.

Sieht aus, als würde die Benutzeroberfläche von Android Studio nicht richtig funktionieren, wenn es darum ging, Ketten zu erstellen. Einige Optionen von Leuten hier arbeiten für 2 oder 3 Elemente, aber ich habe 5 Elemente.

Die Antwort ist also, lösen Sie dies im Code XML.

Meine Schritte sind für Horizontal Anordnung, wenn Sie Vertikal wollen, ändern Sie Rechts/Links für Oben/Unten

Ich lege alle Elemente an die gewünschte Stelle und entferne alle Verbindungen. (In meinem Fall verbinde ich oben und unten, damit sie in der Mitte sein können.)

Dann verbinde ich das erste Element links und das letzte Element rechts. Und verbinden Sie die rechte Seite jedes Elements auf der linken Seite des nächsten Elements.

app:layout_constraintRight_toLeftOf="@id/right_element"

Bild von Elementen verbindet normal, noch keine Kette

Danach gehe ich in den Code und stecke manuell die Verbindung zum linken Element.

app:layout_constraintLeft_toRightOf="@+id/left_element"

Und die chain wurde erstellt . Image der Elemente verbinden sich mit chain

Ich hoffe diese Hilfe, tut mir leid, die Bilder nicht posten zu können, ich habe noch nicht genug Ansehen, XD.

3
Canato

Das Problem wurde durch das Hinzufügen von Einschränkungen in den Bearbeitungstext (app: layout_constraintRight_toLeftOf = "@ + id/button") und die Schaltfläche (app: layout_constraintBaseline_toBaselineOf = "@ + id/editText") behoben.

Füllen Sie das Beispiel wie folgt aus

<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" />
1
Anurag

Wie ich im Blueprint-Layout eine Kettenansicht erstellen konnte, ist die Auswahl der zu verknüpfenden Objekte durch Ziehen. Dann klicken Sie mit der rechten Maustaste und wählen Sie "horizontal zentrieren". Danach kann ich die andere Einschränkung und Kette erstellen

1
james

ich denke, dass Android Studio UI Editor mehr Verbesserungen für die Erstellung einer Kette benötigt. Derzeit verwende ich Android Studio Preview 3.0 Canary 3

Irgendwann vom Editor aus funktioniert es einwandfrei, aber manchmal nicht. Wenn die Verknüpfung mit dem UI-Editor nicht erfolgt, müssen Sie die Abhängigkeiten manuell hinzufügen

layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

und wie folgt definieren wir den Kettenstil manuell in XML

layout_constraintHorizontal_chainStyle oder layout_constraintVertical_chainStyle

CHAIN_SPREAD -- the elements will be spread out (default style)

Gewichtete Kette -- in CHAIN_SPREAD mode, if some widgets are set to MATCH_CONSTRAINT, they will split the available space

CHAIN_SPREAD_INSIDE -- similar, but the endpoints of the chain will not be spread out

CHAIN_PACKED -- the elements of the chain will be packed together. The horizontal or vertical bias attribute of the child will then affect the positioning of the packed elements

ich hoffe, dass Android Studio Editor dies verbessern wird

1
Pavan

Ich habe das Tutorial missachtet, indem ich Autoconnect eingeschaltet habe (weil ich alles probiert habe).

Ich habe beide Widgets ausgewählt und dann horizontal zentrieren ausgewählt. Die Kette wurde erstellt, ich habe Autoconnect wieder deaktiviert und dann das Tutorial fortgesetzt.

0
4dc0

Ich hatte das gleiche Problem vor und von dem, was ich sagen kann, haben wir das gleiche Problem.

Das Tutorial erwartet, dass Sie die Android Studio 3-Version verwenden. Als ich dieses Problem bekam, wurde mir klar, dass mein Android Studio noch 2.2.3. Nach der Installation des Updates für Version 3 und SDK usw. auf die neueste Version hat es funktioniert.

Hoffe das hilft.

0
ikiSiTamvaaan

Wenn Sie dem Tutorial folgen, sollten Sie lediglich sicherstellen, dass das Android Studio auf dem neuesten Stand ist. Ich habe mich gefragt, wo sich bestimmte Schaltflächen befinden, wenn ich den Tutorials folge, aber ich fand eine ältere Version. 

In Bezug auf die Frage wird das Beste von James @ 6/6/17 gegeben.

  1. Fügen Sie der Ansicht drei Schaltflächen hinzu
  2. Wählen Sie alle aus und klicken Sie mit der rechten Maustaste
  3. Wählen Sie "Horizontal zentrieren".

Dies macht den Trick, um die Kette zu erstellen

0
Charith

Ich habe herausgefunden, dass Sie in Android Studio 3.2.2 auf die Ansichten im Komponentenbaum klicken müssen. Klicken Sie also mit der linken Maustaste auf die erste Komponente und halten Sie die Umschalttaste gedrückt, klicken Sie auf die zweite Komponente und klicken Sie dann mit der rechten Maustaste und dann auf Im Menü sehen Sie Ketten wie in meinem Screenshot unten.

Android Studio 3.2.2

enter image description here

0

Die Registerkarte DESIGN ist sehr anfällig für Fehler! Machen Sie einfach das, was Sie im Design tun möchten, aber schreiben Sie es über XML. Tutorials sind nicht selbsterklärend, verbinden Sie alle Linken und Rechte!

0
RJFares

was hat das Problem für mich verursacht? Ich habe eine meiner Ansichten in meinem Layout dupliziert (um die Dinge zu beschleunigen - oder wie ich dachte). Auf diese Weise - ich habe das Problem verursacht - hatten mehrere Ansichten den gleichen Android: id Wert. Das ist ein großes Nein-Nein.

ein eindeutiger Wert für alle meine Ansicht (durch Ändern der Android: ID) half, dieses Problem zu beheben

0
Dror

Ich habe das gelöst, indem ich die Kette im Blueprint-Modus erstellt habe. Das Tutorial sagt nie, dass Sie zurückgehen müssen, aber wenn Sie es tun, können Sie die Kette erstellen.

0
qacwnfq q