¿Por qué Android Studio está eliminando y / o cambiando las limitaciones de layout_margin *?

Estoy usando android.support.constraint.ConstraintLayout para mostrar las vistas de contenido de una tarjeta simple.

Estoy recibiendo cambios aleatorios en mi XML, cada vez, cuando:

  • Cambiar a la pestaña Design del editor de Design Android Studio
  • O cuando tengo un panel de Preview activado (en este caso, los cambios ocurren aún más a menudo durante mis cambios).

Estos cambios aleatorios incluyen:

  • Eliminación de mis márgenes de diseño definidos manualmente (por ejemplo, layout_marginEnd )
  • Cambio de valores de mi valor de margen introducido manualmente
  • Añadir tools:layout_editor_absoluteX values

Preguntas:

  • ¿Alguien más experimenta la función de este Android Studio?
  • ¿Cómo cambiar esta "característica", por lo que mis diseños no se destruye?
  • ¿Dónde informar de este error a Google o JetBrains?

Eche un vistazo a este archivo diff, que se hizo automáticamente cuando se cambió a la pestaña Diseño: Cambios realizados automáticamente en el archivo XML de diseño

PS .: Mi versión de Android Studio es 2.2.3 ; Lo estoy ejecutando en macOS Sierra.

Actualización # 1

Como se sugiere, después de hacer layout_height="match_parent" , obtengo modificaciones menos a menudo, pero aún así mi XML se desordena, cuando edito el layout en Layout Design'er: Cambios automáticos # 2 Esta vez quería establecer layout_marginTop través de Design UI (la línea seleccionada es lo que quería añadir), pero también recibí los otros cambios no deseados:

  • layout_marginStart eliminado;
  • app:layout_constraintBottom_toBottomOf IDs de referencia tienen un prefijo de signo "+", lo que significa que esos IDs se declaran de nuevo, por lo que cuando voy a utilizar la funcionalidad de Goto declaration , tendré que elegir de la lista – no un comportamiento deseado.
  • tools:layout_editor_absoluteX se agrega. Podría ignorarlo, pero todavía – no lo que yo querría que suceda.

Como @JoeyJubb mencionado, el uso de layout_height="match_parent" resuelve este problema. Por lo menos XML no se modifica. Aunque, a veces la vista previa se genera incorrectamente.

He estado notando el mismo problema con Android Studio 2.3, el código cambió automáticamente cada vez que fui de la vista de texto a la vista de diseño en un proyecto reciente con ConstraintLayout. – Estoy bastante seguro de que sucede con RelativeLayout o cualquier otro diseño que desee utilizar también.

Supongo que es algún tipo de error de generación de código automático vinculado a la vista de diseño, no he sido capaz de encontrar una manera de apagarlo todavía.

No estoy seguro de que esto ayude porque estoy seguro de que ya lo has comprendido, pero si trabajas casi completamente en la vista de texto, el problema nunca sucede.

De vez en cuando uso la vista de diseño para comenzar mi diseño, pero una vez que tengo algo de trabajo, permanecer en la vista de texto personalmente parece ser más rápido para el proceso de desarrollo.

  • Problemas de procesamiento de estilos que faltan después de cada actualización
  • Null en el android studio
  • Android AVD para Jelly Bean y API de Google -
  • ¿Cuál es la diferencia entre las carpetas src / androidtest y src / test?
  • Paquetes del módulo de biblioteca no encontrados en el módulo principal
  • Los estilos de homeAsUpIndicator no se aplican en el proyecto predeterminado de Android Studio
  • Android Studio 2.0 Esperando depurador
  • No se puede instalar Android Studio en Ubuntu
  • Quitar la biblioteca externa de clases obfuscated.jar (en Android Studio / Gradle)
  • Gradle: La ejecución falló para la tarea compileReleaseAidl
  • ProjectFilesBackup carpeta en el proyecto de estudio de Android para la última versión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.