Vistas de ConstraintLayout en la esquina superior izquierda
Cada vez que creo vistas como Button
y TextView
en ConstraintLayout
, todas se quedan atascadas en la esquina superior en lugar de donde las coloqué.
Intenté crear nuevas actividades y cambiar el emulador, pero el resultado sigue siendo el mismo.
Esta es una captura de pantalla de lo que está sucediendo:
¿Cuál puede ser el problema?
Como se indica en las guías de diseño de restricciones :
Si una vista no tiene restricciones cuando ejecuta su diseño en un dispositivo, se dibuja en la posición [0,0] (la esquina superior izquierda).
Debe agregar al menos una restricción horizontal y una vertical para la vista.
Supongo que no has aplicado ninguna restricción.
Aplique restricciones manualmente a la vista o deje que el editor de diseño lo haga por usted usando el botón "Inferir restricciones" :
Cuando sueltas una vista en el Editor de diseño, permanece donde la dejaste incluso si no tiene restricciones... esto es sólo para facilitar la edición.
En otras palabras, la Vista "permanecerá donde la dejes" hasta que agregues restricciones.
La razón por la que se ve diferente en la Vista previa frente a su aplicación es porque cualquier cosa en su XML tools:
se eliminará del código cuando se ejecute su aplicación . Estas opciones son solo para el editor de diseño de Android Studio y no representan lo que debería esperar ver cuando se ejecuta el código.
Y puede resultar problemático para los principiantes porque
una restricción faltante no causará un error de compilación
Sin embargo
el Editor de diseño indica las restricciones faltantes como un error en la barra de herramientas. Para ver los errores y otras advertencias, haga clic en Mostrar advertencias y errores (botón rojo con número). Para ayudarle a evitar la falta de restricciones, el Editor de diseño puede agregar restricciones automáticamente con las funciones Autoconexión e inferencia de restricciones.
Más detalles
Una forma rápida y sencilla de solucionar este problema es hacer clic en el componente (TextView, ImageView, etc.) y hacer clic en el botón Inferir restricciones. Parecen 2 signos más amarillos.
inferir imagen de restricciones