Nouvel éditeur de mise en page dans Android Studio 2.2 continue d'afficher cette erreur dans des vues telles que EditText et Boutons. De même, tous les liens utiles à l’intégration de la nouvelle mise en page de contraintes seraient les bienvenus.
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>
La mise en page par contrainte vise à réduire les hiérarchies et à améliorer les performances des mises en page (techniquement, il n'est pas nécessaire de modifier différentes tailles d'écran, aucun 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 présentation.
Cliquez sur le petit cercle et faites-le glisser vers la gauche jusqu'à ce qu'il devienne vert, pour ajouter une contrainte à gauche (donnez un nombre, dites x dp. Répétez-le avec les autres côtés et laissez la contrainte inférieure vide si vous avez une autre vue en dessous. .
Éditer: selon le site des développeurs, au lieu d’ajouter des contraintes à chaque vue lorsque vous les placez dans la présentation, vous pouvez déplacer chaque vue dans les positions souhaitées, puis cliquer sur Inférer les contraintes pour créer automatiquement des contraintes. plus ici
À partir de Android Studio v3 et ultérieur, Infer Constraint a été supprimé du menu déroulant.
Utilisez l'icône baguette magique dans le menu de la barre d'outils au-dessus de l'aperçu de la conception. 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.
Copiez simplement ce code sur tous les composants que vous allez faire glisser.
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
exemple:
<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"/>
Allez à la conception, faites un clic droit sur votre widget, Mise en forme de contrainte >> Inférer les contraintes. Vous pouvez constater que du code a été automatiquement ajouté à votre texte.
Follow these steps:
Right click on designing part > Constraint Layout > Infer Constraints
Si Inférer la Constraints
vous donne toujours l'erreur, utilisez simplement ce code:
app:layout_constraintBottom_toBottomOf="parent"
Accédez à la structure XML. Texte où le widget (bouton ou autre vue) indique une erreur, placez le curseur là et appuyez sur alt+enter et sélectionnez les attributs de contraintes manquants.
Vous devez faire glisser la EditText
à partir du bord de la présentation et pas uniquement de 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:
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"
par exemple j'ai ceci
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
utiliser la mise en page RelativeLayout comme ceci
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Passez simplement en mode Création et localisez le widget concerné. Saisissez 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, il suffit de saisir le point le plus haut et de le joindre au bord supérieur de l’écran du téléphone, comme indiqué sur l’image.