Le nouvel éditeur de mise en page dans Android Studio 2.2 continue d'afficher cette erreur sur des vues telles que EditText et Buttons. De plus, tous les liens qui aident à l'intégration avec la nouvelle mise en page de contraintes seraient appréciés.
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>
Réponses:
La mise en page par contraintes vise à réduire les hiérarchies de mise en page et améliore les performances des mises en page (techniquement, vous n'avez pas à apporter de modifications pour différentes tailles d'écran, pas de chevauchement, fonctionne comme un charme sur un mobile ainsi qu'un onglet avec les mêmes contraintes) .Voici comment vous vous débarrassez de l'erreur ci-dessus lorsque vous utilisez le nouvel éditeur de mise en page.
Cliquez sur le petit cercle et faites-le glisser vers la gauche jusqu'à ce que le cercle devienne vert, pour ajouter une contrainte à gauche (donnez un nombre, disons x dp. Répétez-le avec les autres côtés et laissez la contrainte du bas vide si vous avez une autre vue en dessous. .
Modifier: selon le site des développeurs, au lieu d'ajouter des contraintes à chaque vue lorsque vous les placez dans la mise en page, vous pouvez déplacer chaque vue dans les positions souhaitées, puis cliquez sur Infer Constraints pour créer automatiquement des contraintes. plus ici
la source
À partir d'Android Studio v3 et versions ultérieures, Infer Constraint a été supprimé de la liste déroulante.
Utilisez l' icône de la baguette magique dans le menu de la barre d'outils au-dessus de l'aperçu du design; il y a le bouton " Infer Constraints ". Cliquez sur ce bouton, cela ajoutera automatiquement quelques lignes dans le champ de texte et la ligne rouge sera supprimée.
la source
Copiez simplement ce code sur tous les composants que vous allez faire glisser.
exemple:
la source
Allez dans le Design, faites un clic droit sur votre Widget, Disposition des Contraintes >> Inférer des Contraintes. Vous pouvez observer que du code a été automatiquement ajouté à votre texte.
la source
la source
Si le fait de déduire le
Constraints
vous donne toujours l'erreur, utilisez simplement ce code:la source
Vous devez faire glisser le
EditText
depuis le bord de la mise en page et pas seulement l'autre widget. Vous pouvez également ajouter des contraintes en faisant simplement glisser le point de contrainte qui entoure le widget vers le bord de l'écran pour ajouter des contraintes comme spécifié.Le code modifié ressemblera à ceci:
la source
Accédez à la mise en page XML Texte où le widget (bouton ou autre vue) indique une erreur, placez le curseur là-bas et appuyez sur alt+ enteret sélectionnez les attributs de contraintes manquants.
la source
par exemple j'ai ceci
utiliser la disposition RelativeLayout comme ceci
la source
Passez simplement en mode Conception et localisez le widget concerné. Prenez l'un des points sur la limite du widget et joignez-le à un bord approprié de l'écran (ou à un point sur un autre widget).
Par exemple, si le widget est une barre d'outils, saisissez simplement le point le plus haut et joignez-le au bord supérieur de l'écran du téléphone, comme indiqué dans l'image.
la source
Cela m'aide beaucoup
la source
Vous devez changer
androidx.constraintlayout.widget.ConstraintLayout
pourRelativeLayout
.la source