web-dev-qa-db-fra.com

Cette vue n'est pas contrainte verticalement. Au moment de l'exécution, il saute à gauche sauf si vous ajoutez une contrainte verticale

enter image description here 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>
69
onexf

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.

enter image description here

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. . enter image description here

É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

67
onexf

À 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.

enter image description here

39
Gvtha

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"/>
22
ainz Montenegro

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.

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

Si Inférer la Constraints vous donne toujours l'erreur, utilisez simplement ce code:

app:layout_constraintBottom_toBottomOf="parent"
2
user8622246

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.

1
KeyBoardBoy

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" 
1
Abdul Rahman K

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"
1
ibrahim mert

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.

Design View

0
Sunit Gautam