wake-up-neo.com

Diese Ansicht ist nicht vertikal eingeschränkt. Zur Laufzeit wird nach links gesprungen, es sei denn, Sie fügen eine vertikale Einschränkung hinzu

enter image description here Neuer Layout-Editor in Android Studio 2.2 zeigt diesen Fehler weiterhin in Ansichten wie EditText und Buttons an. Bitte helfen Sie. Auch alle Links, die bei der Integration des neuen Constraint-Layouts hilfreich sind, sind willkommen.

code:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout
    Android:id="@+id/activity_main"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context="com.set.email.MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <TextView
        Android:text="To:"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="7dp"
        tools:layout_editor_absoluteY="4dp"
        Android:id="@+id/textTo"/>

    <EditText
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:inputType="textEmailAddress"
        Android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="24dp"
        Android:id="@+id/editTo"
        Android:textAppearance="@Android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        Android:layout_width="384dp"
        Android:layout_height="42dp"
        Android:inputType="textPersonName"
        Android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="94dp"
        Android:id="@+id/editSubject"
        Android:textAppearance="@Android:style/TextAppearance.DeviceDefault.Medium"/>

    <EditText
        Android:layout_width="384dp"
        Android:layout_height="273dp"
        Android:inputType="textPersonName"
        Android:ems="10"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="179dp"
        Android:id="@+id/editMessage"
        app:layout_constraintLeft_toLeftOf="@+id/activity_main"
        tools:layout_constraintLeft_creator="50"
        Android:textAppearance="@Android:style/TextAppearance.DeviceDefault.Medium"/>

    <Button
        Android:text="Send"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="140dp"
        tools:layout_editor_absoluteY="454dp"
        Android:id="@+id/btnSend"
        app:layout_constraintLeft_toLeftOf="@+id/editMessage"
        tools:layout_constraintLeft_creator="0"
        app:layout_constraintRight_toRightOf="@+id/activity_main"
        Android:layout_marginEnd="16dp"
        tools:layout_constraintRight_creator="0"
        Android:textAppearance="@Android:style/TextAppearance.DeviceDefault.Medium"/>


</Android.support.constraint.ConstraintLayout>
69
onexf

Das Einschränkungslayout zielt darauf ab, Layouthierarchien zu reduzieren und die Leistung von Layouts zu verbessern (technisch gesehen müssen Sie keine Änderungen für verschiedene Bildschirmgrößen vornehmen. Keine Überlappung, funktioniert wie Charme auf einem Mobiltelefon sowie auf einer Registerkarte mit denselben Einschränkungen) Wenn Sie den neuen Layout-Editor verwenden, wird der obige Fehler behoben.

enter image description here

Klicken Sie auf den kleinen Kreis und ziehen Sie ihn nach links, bis der Kreis grün wird, um eine linke Einschränkung hinzuzufügen (geben Sie eine Zahl an, sagen Sie x dp. Wiederholen Sie dies mit den anderen Seiten und lassen Sie die untere Einschränkung leer, wenn Sie eine andere Ansicht darunter haben . enter image description here

Bearbeiten: Laut Entwicklerwebsite können Sie jeder Ansicht beim Platzieren im Layout keine Einschränkungen hinzufügen, sondern jede Ansicht an die gewünschten Positionen verschieben und dann auf Abhängigkeiten ableiten klicken, um automatisch Abhängigkeiten zu erstellen. mehr hier

67
onexf

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

Verwenden Sie das Zauberstab-Symbol im Symbolleistenmenü über der Entwurfsvorschau. Es gibt die Schaltfläche " Infer Constraints ". Klicken Sie auf diese Schaltfläche, um automatisch einige Zeilen in das Textfeld einzufügen und die rote Linie zu entfernen.

enter image description here

39
Gvtha

Kopieren Sie diesen Code einfach in alle Komponenten, die Sie ziehen möchten.

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

beispiel:

<TextView
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    Android:text="To:"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    tools:layout_editor_absoluteX="7dp"
    tools:layout_editor_absoluteY="4dp"
    Android:id="@+id/textTo"/>
22
ainz Montenegro

Gehen Sie zum Design, klicken Sie mit der rechten Maustaste auf Ihr Widget, Constraint Layout >> Infer Constraints. Sie können feststellen, dass Ihrem Text automatisch Code hinzugefügt wurde.

21
Atul Chavan
Follow these steps:
Right click on designing part > Constraint Layout > Infer Constraints
4
Makvin

Wenn die Fehlermeldung "Constraints" weiterhin angezeigt wird, verwenden Sie einfach diesen Code:

app:layout_constraintBottom_toBottomOf="parent"
2
user8622246

Gehen Sie zum XML-Layout-Text, in dem das Widget (Schaltfläche oder andere Ansicht) einen Fehler anzeigt, fokussieren Sie den Cursor dort und drücken Sie alt+enter und wählen Sie fehlende Constraints-Attribute aus.

1
KeyBoardBoy

Sie müssen das EditText vom Rand des Layouts und nicht nur vom anderen Widget ziehen. Sie können Einschränkungen auch hinzufügen, indem Sie einfach den Einschränkungspunkt, der das Widget umgibt, an den Rand des Bildschirms ziehen, um die angegebenen Einschränkungen hinzuzufügen.

Der geänderte Code sieht ungefähr so ​​aus:

    app:layout_constraintLeft_toLeftOf="@+id/router_text"
    app:layout_constraintTop_toTopOf="@+id/activity_main"
    Android:layout_marginTop="320dp"
    app:layout_constraintBottom_toBottomOf="@+id/activity_main"
    Android:layout_marginBottom="16dp"
    app:layout_constraintVertical_bias="0.29" 
1
Abdul Rahman K

zum Beispiel habe ich das

<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"

verwenden Sie das RelativeLayout-Layout wie folgt

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
1
ibrahim mert

Wechseln Sie einfach in die Entwurfsansicht und suchen Sie das betreffende Widget. Nehmen Sie einen der Punkte an der Begrenzung des Widgets und verbinden Sie ihn mit einem geeigneten Rand des Bildschirms (oder mit einem Punkt auf einem anderen Widget).

Wenn es sich bei dem Widget beispielsweise um eine Symbolleiste handelt, nehmen Sie einfach den obersten Punkt und verbinden Sie ihn mit dem obersten Rand des Telefonbildschirms, wie in der Abbildung dargestellt.

Design View

0
Sunit Gautam