Diese Ansicht ist nicht eingeschränkt

95

Ich erhalte die folgende Fehlermeldung und verwende Android Studio 2.2 Preview 3. Ich habe Google durchsucht, aber keine Ressourcen gefunden.

Error: This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints

Geben Sie hier die Bildbeschreibung ein

<TextView
        android:layout_width="384dp"
        android:layout_height="207dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/calc_default_display"
        android:id="@+id/textView"
        android:background="#ffffff"
        android:layout_margin="0dp"
        android:gravity="bottom|end"
        android:textSize="70sp"
        android:nestedScrollingEnabled="false"
        android:maxLines="2"
        android:maxLength="17"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp" />
Isuru
quelle

Antworten:

152

Um schnell dieses Problem zu beheben, verwenden Sie diese sehr hilfreich Verknüpfung im Android Studio:

Klicken Sie mit der rechten Maustaste auf das betreffende Widget> Einschränkungslayout> Einschränkungen ableiten:

Geben Sie hier die Bildbeschreibung ein

Anschließend können Sie die Einschränkungen wie hier beschrieben anpassen: https://stackoverflow.com/a/37960888/5556250

Aktualisieren

Dies ist für Android Studio v3 und höher nicht korrekt. Wie pro @ purpleladydragons Kommentar :

"Constraint Layout" befindet sich nicht im Dropdown-Menü. Verwenden Sie das Zauberstabsymbol im Symbolleistenmenü über der Entwurfsvorschau. Es gibt die Schaltfläche "Infer Constraints".

Jay Souper
quelle
2
Vielen Dank für Ihre Lösung, ich bin ein absoluter Anfänger, ich hatte keine Ahnung, was mit der Widget-Position falsch war
Atul Chavan
2
Tolle Lösung, obwohl ich mir wünschte, Android Studio würde die Positionen nur von Anfang an speichern, anstatt Laufzeitpositionen. Eine bessere Frage ist, warum Google es für eine gute Idee hielt, die Position nur zur Laufzeit zu speichern. Dies ist ein unnötiger Schritt, um Entwickler dazu zu bringen, auf die Position zu schließen.
Antony
Vielen Dank! Sehr hilfreich
Paul
23
Ich verwende Android Studio 3.0 - "Constraint Layout" war nicht im Dropdown-Menü, als ich mit der rechten Maustaste auf ein Widget geklickt habe. Ich erkannte, dass es im Symbolleistenmenü über der Designvorschau ein Symbol gab, das wie ein Zauberstab aussah. Dies ist auch eine Schaltfläche "Einschränkungen ableiten".
Purpleladydragons
Die Lösung konnte nicht mehr in Android Studio Version 3 oder höher gefunden werden
Mohammad Heydari
74

Lösung

Klicken Sie einfach darauf und es wird gelöst

Cem U.
quelle
Ich sehe diese Symbolleiste mit dieser Schaltfläche nicht. Wie finde ich es?
i_am_david
Ich weiß nicht, ob Sie eine andere Version von Android Studio verwenden. Bitte überprüfen Sie diesen Knopf, er sollte irgendwo dort sein. Wenn Sie nicht finden können, gibt es andere Lösungen
Cem U
12

Sie benötigen einen Wert zu den Einschränkungen von Hand zu geben , wenn das neue Layout - Editor oder die fehlenden Einschränkungen können durch Klicken auf den Zauberstab in der Symbolleiste Menü des Design Vorschau automatisch hinzugefügt werden.

onexf
quelle
11

Sie können dies versuchen: 1. Stellen Sie sicher, dass Sie Folgendes hinzugefügt haben: compile 'com.android.support:design:25.3.1' (möglicherweise sollten Sie auch compile 'com.android.support.constraint: Constraint-Layout: 1.0.2' hinzufügen. ) 2.Geben Sie hier die Bildbeschreibung ein

3.Klicken Sie auf die Infer Constraints und hoffen Sie, dass es Ihnen helfen kann.

BertKing
quelle
7

Okay, ich weiß, dass diese Antwort alt ist, aber ich habe herausgefunden, wie das für Version 3.1.4 geht. Für mich tritt dieser Fehler immer dann auf, wenn ich ein neues Element in die Hierarchie eingefügt habe, sodass ich wusste, dass ich eine Lösung benötige. Nachdem ich ein bisschen herumgebastelt hatte, fand ich heraus, wie es geht, indem ich die folgenden Schritte befolgte:

  1. Klicken Sie mit der rechten Maustaste auf das Objekt und gehen Sie zu Mitte.

Schritt 1

  1. Wählen Sie dann Horizontal.

Schritt 2

  1. Wiederholen Sie diese Schritte, außer auf Vertikal statt Horizontal zu klicken.

Vorausgesetzt, diese Methode funktioniert immer noch, sollten Sie nach Schritt zwei verschnörkelte Linien sehen, die horizontal über die Position des Elements und nach Schritt drei horizontal und vertikal verlaufen. Nach Schritt drei wird der Fehler behoben!

tdog
quelle
6

Klicken Sie mit der rechten Maustaste und entwerfen Sie dann ein Teil für die Komponente, bei der Sie einen Fehler erhalten haben, und führen Sie die folgenden Schritte aus:

  • [zum Beispiel. wenn im Klartext ein Fehler auftritt]

[1]

Nur-Text-Constraint-Layout> Infer-Constraints:

Endlich ist der Fehler verschwunden

Satyam Mishra
quelle
6

Klicken Sie mit der rechten Maustaste auf das Widget und wählen Sie "Mitte" -> "Horizontal". Wählen Sie dann "Mitte" -> "Vertikal".

Taimoor Hassan
quelle
6

Ab Android Studio v3 wurde Infer Constraint aus der Dropdown-Liste entfernt.

Verwenden Sie das Zauberstabsymbol im Symbolleistenmenü über der Entwurfsvorschau. Es gibt die Schaltfläche " Infer Constraints ". Klicken Sie auf diese Schaltfläche. Dadurch werden automatisch einige Zeilen in das Textfeld eingefügt und die rote Zeile wird entfernt.

Geben Sie hier die Bildbeschreibung ein

Vinoth
quelle
4

Sie müssen nur mit der rechten Maustaste auf das Widget klicken und "Mitte" -> "Horizontal" auswählen und es erneut ausführen. Wählen Sie dann -> "Vertikal". Dies hat bei mir funktioniert ...

Ekane 3
quelle
0

Sie können zu gehen und XML filedann Ihren Mauszeiger auf Ihre Schaltfläche, Alt + EnterTextansicht oder was auch immer Sie für Ihr Layout wählen, fokussieren und dann drücken , um es zu beheben, danach wird der Fehler behoben sein. Es funktioniert für mich.

Mohammad Heydari
quelle
0

Nachdem Sie auf das Zauberstab-Symbol geklickt haben, um auf Einschränkungen zu schließen:

1) Gehen Sie im Projektfenster zu Gradle Scripts> build.gradle (Modul: App).

2) Scrollen Sie nach unten zu Abhängigkeiten

3) Suchen Sie nach der Implementierung 'com.android.support:appcompat-v7:28.0.0-beta03'.

4) Ändern Sie diese Zeile in die Implementierung 'com.android.support:appcompat-v7:28.0.0-alpha1'.

5) Oben im Fenster sollte ein Banner angezeigt werden. Klicken Sie in der rechten Ecke auf Jetzt synchronisieren.

Dies funktioniert für Android Studio v3.1. Klicken Sie hier, um das Bild der Bearbeitung in die Datei build.gradle aufzunehmen

pablo.programmer
quelle
0

Beim Erstellen eines Layouts ist es einfacher, mit jeweils einem Steuerelement zu arbeiten, als alle gleichzeitig hinzuzufügen.

Ziehen Sie aus der Layout-Palette ein ConstraintLayout auf den Bildschirm.

Verschieben Sie die gewünschten Steuerelemente in das ConstraintLayout.

Das ConstraintLayout ist nun das übergeordnete Element des Steuerelements. Wenn Sie zum XML-Code wechseln, werden die Steuerelemente unter dem ConstraintLayout verschachtelt.

Klicken Sie mit der rechten Maustaste auf Ihr Steuerelement, wählen Sie im Menü die Option "Einschränkung" aus und legen Sie fest, wie Sie es am übergeordneten ConstraintLayout, oben, Start usw. ausrichten möchten.

Wenn Sie zwei Steuerelemente relativ zueinander ausrichten müssen, wählen Sie beide Steuerelemente gleichzeitig mit der Strg-Taste aus und klicken Sie mit der rechten Maustaste, um das Einschränkungsmenü zu öffnen.

Weitere Informationen: https://developer.android.com/training/constraint-layout

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein Sie können den Abstand zwischen den Einschränkungen auf der Registerkarte "Einschränkungslayout" angeben:

Geben Sie hier die Bildbeschreibung ein

Live-Liebe
quelle