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:

  • Liste l'élément avec le bouton ne plus être cliqué
  • Android Virtual Device Manager - Webcam0 sur 4.4.2 ne fonctionne pas
  • Réflexion pour accéder aux fonctionnalités avancées de téléphonie
  • Activité Android comme boîte de dialogue
  • Comment ouvrir un nouveau fragment à partir du tiroir de navigation?
  • Configuration HAXM dans le studio 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.

  • Dans la sécurité de facturation de l'application
  • Une application Android qui fonctionne sur toutes les autres applications?
  • Quelle est la différence entre `DialogInterface.dismiss ()` et `DialogInterface.cancel ()`?
  • GCM avec PHP (Google Cloud Messaging)
  • Passer à l'écran d'accueil par programme
  • Android supprimer l'icône de l'application barre d'action
  • 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.