web-dev-qa-db-fra.com

pourquoi Android studio affiche une erreur de "Contraintes manquantes dans la configuration des contraintes"?

image

Cette vue n'est pas contrainte, elle n'a que des positions de conception, elle passera donc à (0,0) sauf si vous ajoutez des contraintes

L'éditeur de mise en page vous permet de placer des widgets n'importe où sur le canevas et il enregistre la position actuelle avec des attributs de conception (tels que layout_editor_absolute X.) Ces attributs ne sont pas appliqués au moment de l'exécution, donc si vous poussez votre mise en page sur un appareil, le les widgets peuvent apparaître à un emplacement différent de celui indiqué dans l'éditeur. Pour résoudre ce problème, assurez-vous qu'un widget a des contraintes horizontales et verticales en les faisant glisser depuis les connexions Edge

6
pawas kr. singh

Il est très simple de résoudre ce problème. Cliquez simplement sur le widget (par exemple bouton ou zone de texte, etc.) puis cliquez sur le bouton "Inférer des contraintes". Vous pouvez voir dans l'image ci-jointe ou ce lien Youtube: https://www.youtube.com/watch?v=uOur51u5Nk

Infer constraints picture

26
IoT_Newbie

Vous pourriez avoir des widgets avec des attributs:

    tools:layout_editor_absoluteX="someValue"
    tools:layout_editor_absoluteY="someValue"

tools l'espace de noms est utilisé au moment du développement uniquement, et sera supprimé lors de l'installation d'apk, de sorte que toutes vos mises en page peuvent apparaître en haut à gauche l'une au-dessus de l'autre. Affichage Référence des attributs d'outils

Pour résoudre ce problème: vous devez utiliser des contraintes de mise en page comme:

layout_constraintLeft_toLeftOf
layout_constraintLeft_toRightOf
layout_constraintRight_toLeftOf
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

Vous pouvez consulter le document de ConstraintLayout et Build a Responsive UI with ConstraintLayout pour plus de détails

MODIFIER:

À partir du image que vous avez publié, j'ai essayé d'ajouter des contraintes appropriées telles que TextView est en position centrale en utilisant le code suivant:

<Android.support.constraint.ConstraintLayout 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">

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</Android.support.constraint.ConstraintLayout>
2
Firoz Memon