Der neue 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 beim Onboarding mit dem neuen Einschränkungslayout helfen, 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>
Antworten:
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 ein Zauber auf einem Mobiltelefon sowie auf einer Registerkarte mit denselben Einschränkungen) Sie werden den obigen Fehler beseitigen, wenn Sie den neuen Layout-Editor verwenden.
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, z. B. x dp. Wiederholen Sie diesen Vorgang mit den anderen Seiten und lassen Sie die untere Einschränkung leer, wenn Sie eine andere Ansicht darunter haben .
Bearbeiten: Laut Entwicklerseite können Sie, anstatt jeder Ansicht beim Platzieren im Layout Einschränkungen hinzuzufügen, jede Ansicht an die gewünschten Positionen verschieben und dann auf Einschränkungen ableiten klicken, um automatisch Einschränkungen zu erstellen. mehr hier
quelle
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.
quelle
Kopieren Sie diesen Code einfach in alle Komponenten, die Sie ziehen möchten.
Beispiel:
quelle
Gehen Sie zum Design und klicken Sie mit der rechten Maustaste auf Ihr Widget, Einschränkungslayout >> Einschränkungen ableiten. Sie können feststellen, dass Ihrem Text automatisch Code hinzugefügt wurde.
quelle
quelle
Wenn
Constraints
Sie auf den Fehler schließen, verwenden Sie einfach diesen Code:quelle
Sie müssen das
EditText
vom Rand des Layouts ziehen und nicht nur das andere Widget. Sie können Einschränkungen auch hinzufügen, indem Sie einfach den Einschränkungspunkt, der das Widget umgibt, an den Bildschirmrand ziehen, um die angegebenen Einschränkungen hinzuzufügen.Der geänderte Code sieht ungefähr so aus:
quelle
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+ enterund wählen Sie fehlende Einschränkungsattribute aus.
quelle
Zum Beispiel habe ich das
Verwenden Sie das RelativeLayout-Layout wie folgt
quelle
Wechseln Sie einfach in die Entwurfsansicht und suchen Sie das betreffende Widget. Nehmen Sie einen der Punkte an der Grenze 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 im Bild gezeigt.
quelle
Das hilft mir sehr
quelle
Sie müssen sich ändern
androidx.constraintlayout.widget.ConstraintLayout
zuRelativeLayout
.quelle