J'utilise Android.support.constraint.ConstraintLayout
pour mettre en page les vues de contenu d'une simple carte.
Je reçois des modifications aléatoires dans mon XML, à chaque fois, quand:
Design
de l'éditeur de disposition d'Android Studio.Preview
(dans ce cas, les modifications sont encore plus fréquentes au cours de mes modifications).Ces changements aléatoires incluent:
layout_marginEnd
)tools:layout_editor_absoluteX
Des questions:
S'il vous plaît jeter un oeil à ce fichier diff, qui a été faite automatiquement lorsque vous passez à l'onglet Conception:
PS: Ma version d'Android Studio est 2.2.3
; Je l'exécute sur macOS Sierra.
Comme suggéré, après avoir créé layout_height="match_parent"
, j'obtiens moins de modifications, mais mon XML est quand même perturbé lorsque je modifie la présentation dans Layout Design'er: Cette fois, je voulais définir layout_marginTop
par le biais de l'interface utilisateur de conception (la ligne sélectionnée correspond à ce que je voulais ajouter), mais j'ai également ces autres modifications indésirables:
layout_marginStart
enlevé;app:layout_constraintBottom_toBottomOf
référencés ont un préfixe "+", ce qui signifie que ces identifiants sont nouvellement déclarés. Ainsi, lorsque j'utiliserai la fonctionnalité Goto declaration
, je devrai la choisir dans la liste - ce n'est pas le comportement souhaité.tools:layout_editor_absoluteX
est ajouté. Je pouvais l'ignorer, mais quand même - ce n'est pas ce que je voudrais arriver.Je remarquais le même problème avec Android Studio 2.3: le code changeait automatiquement chaque fois que je passais de la vue texte à la vue création sur un projet récent avec ConstraintLayout. - Je suis à peu près sûr que cela se produit avec RelativeLayout ou tout autre agencement que vous souhaitez utiliser.
J'imagine qu'il s'agit d'un type de bogue de génération de code automatique lié à la vue Conception. Je n'ai pas encore trouvé le moyen de le désactiver.
Je ne suis pas sûr que cela aide, car je suis convaincu que vous l'avez déjà compris, mais si vous travaillez presque complètement en mode texte, le problème ne se reproduira jamais.
J'utilise parfois le mode Création pour commencer ma mise en page, mais dès que quelque chose fonctionne, rester personnellement en mode texte semble être plus rapide pour le processus de développement.
Comme @JoeyJubb l'a mentionné, l'utilisation de layout_height="match_parent"
résout ce problème. Au moins, XML n'est pas modifié. Bien que, parfois, l'aperçu ne soit pas généré correctement.
Dans mon cas, la mise à niveau vers la dernière dépendance de Gradle a aidé:
com.Android.support.constraint:constraint-layout:1.0.2
J'ai aussi commencé à utiliser 0dp
au lieu de match_parent
pour layout_width