Pourquoi Android Studio supprime-t-il et / ou change-t-il les contraintes de layout_margin *?

J'utilise android.support.constraint.ConstraintLayout pour mettre en page les vues de contenu d'une carte simple.

Je reçois des modifications aléatoires dans mon XML, chaque fois que:

  • Faire une requête HTTP avec Android
  • Définir la commande z de View avec bringChildToFront ()
  • Quelle est la fonctionnalité de l'utilisation de PhoneGap?
  • Est-il possible de lier un TableLayout avec un ArrayAdapter?
  • Ouvrir un datPickerDialog sur Click of EditText prend deux clics
  • Est-il possible de masquer une vue dans Android?
    • Je passe à l'onglet Design l'éditeur de mise en page de Android Studio
    • Ou lorsque j'ai un panneau de Preview activé (dans ce cas, les changements se produisent encore plus souvent lors de mes modifications).

    Ces changements aléatoires comprennent:

    • Suppression de mes marges de mise en page définies manuellement (p. Ex. layout_marginEnd )
    • Modification des valeurs de ma valeur de marge entrée manuellement
    • Ajout d' tools:layout_editor_absoluteX valeurs tools:layout_editor_absoluteX

    Des questions:

    • Quelqu'un d'autre connaît cette fonctionnalité de Android Studio?
    • Comment désactiver cette "fonction", donc mes mises en page ne seraient pas détruites?
    • Où signaler ce bug à Google ou JetBrains?

    Jetez un coup d'oeil à ce fichier diff, qui a été effectué automatiquement lorsque vous basculiez sur l'onglet Design: Différence de modifications apportées automatiquement dans le fichier XML de mise en page

    PS: Ma version Android Studio est 2.2.3 ; Je l'exécute sur MacOS Sierra.

    Mise à jour # 1

    Comme l'a suggéré, après avoir fait layout_height="match_parent" , j'obtiens des modifications moins souvent, mais mon XML est toujours désordonné, lorsque je modifie la disposition dans Layout Design'er: Changements automatiques n ° 2 Cette fois, je voulais configurer layout_marginTop travers l'interface de conception (la ligne sélectionnée est ce que je voulais ajouter), mais j'ai également eu d'autres modifications indésirables:

    • layout_marginStart supprimé;
    • app:layout_constraintBottom_toBottomOf identifiants référencés ont un préfixe de signe "+", ce qui signifie que ces identifiants sont nouvellement déclarés, alors quand j'utiliserai la fonctionnalité Goto declaration , je devrai le choisir dans la liste – pas un comportement souhaité.
    • tools:layout_editor_absoluteX est ajouté. Je pourrais l'ignorer, mais toujours – pas ce que je voudrais que cela se produise.

  • Android: comment utiliser SectionIndexer
  • Lancer une application sms avec une intention
  • Comment remplir l'image dans ImageView par les coordonnées gauche et supérieure personnalisées | Android
  • L'onglet Commande onNewIntent cause IllegalStateException
  • Comment procurer un contexte Android pour un test Junit à partir d'un projet Java?
  • Android - Clics retardés dans ListView
  • 2 Solutions collect form web for “Pourquoi Android Studio supprime-t-il et / ou change-t-il les contraintes de layout_margin *?”

    Comme l'a mentionné @JoeyJubb, using layout_height="match_parent" résout ce problème. Au moins XML n'est pas modifié. Bien que, parfois, l'aperçu soit généré de manière incorrecte.

    J'ai pris connaissance du même problème avec Android Studio 2.3, le code a changé automatiquement chaque fois que je passais de la vue de texte à la vue de conception sur un projet récent avec ConstraintLayout. – Je suis plutôt sûr que cela se produise avec RelativeLayout ou n'importe quelle autre disposition que vous souhaitez utiliser.

    Je suppose que c'est un type de bug de génération de code automatique lié à la vue de conception, je n'ai pas encore trouvé de moyen de l'éteindre.

    Je ne suis pas sûr que cela aide, car je suis convaincu que vous l'avez déjà réalisé, mais si vous travaillez presque complètement dans la vue du texte, la question ne se produit jamais.

    J'utilise parfois la vue de conception pour commencer ma mise en page, mais une fois que j'ai quelque chose à faire, rester en mode texte semble être plus rapide pour le processus de développement.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.