Esta vista no está restringida


95

Recibo el siguiente error y estoy usando Android Studio 2.2 Preview 3. Busqué en Google pero no pude encontrar ningún recurso.

Error: This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints

ingrese la descripción de la imagen aquí

<TextView
        android:layout_width="384dp"
        android:layout_height="207dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/calc_default_display"
        android:id="@+id/textView"
        android:background="#ffffff"
        android:layout_margin="0dp"
        android:gravity="bottom|end"
        android:textSize="70sp"
        android:nestedScrollingEnabled="false"
        android:maxLines="2"
        android:maxLength="17"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp" />

Respuestas:


152

Para resolver esto rápidamente , use este atajo muy útil en Android Studio:

Haga clic con el botón derecho en el widget en cuestión> Diseño de restricción> Inferir restricciones:

ingrese la descripción de la imagen aquí

A partir de entonces, puede modificar las restricciones como se describe aquí: https://stackoverflow.com/a/37960888/5556250

Actualizar

Esto no es correcto para Android Studio v3 y versiones posteriores. Según el comentario de @ purpleladydragons :

"Diseño de restricción" no está en el menú desplegable. Utilice el icono de la varita mágica en el menú de la barra de herramientas sobre la vista previa del diseño; está el botón "Inferir restricciones".


2
Muchas gracias por su solución, soy un principiante absoluto, no tenía idea de lo que estaba mal con la posición del widget
Atul Chavan

2
Gran solución, aunque me gustaría que Android Studio simplemente almacenara las posiciones desde el principio, en lugar de las posiciones de tiempo de ejecución. Una mejor pregunta es por qué Google pensó que era una buena idea almacenar la posición solo durante el tiempo de ejecución. Ese es un paso innecesario para hacer que los desarrolladores hagan clic para inferir la posición.
Antony

¡Muchas gracias! Muy útil
Paul

23
Estoy usando Android Studio 3.0 - "Diseño de restricción" no estaba en el menú desplegable cuando hice clic derecho en un widget. Me di cuenta de que había un icono que parecía una varita mágica en el menú de la barra de herramientas sobre la vista previa del diseño, que también es un botón "Inferir restricciones".
purpleladydragons

la solución ya no se pudo encontrar en Android Studio versión 3 o superior
Mohammad Heydari

74

Solución

Simplemente haga clic en esto y se resolverá


No veo esa barra de herramientas con ese botón. ¿Cómo lo encuentro?
i_am_david

No sé si está utilizando una versión diferente de Android Studio. Por favor, marque ese botón, debería estar en algún lugar allí. Si no puede encontrar, hay otras soluciones
Cem U

12

Debe dar un valor a las restricciones manualmente cuando utilice el nuevo editor de diseño o las restricciones que faltan se pueden agregar automáticamente haciendo clic en el botón de la varita mágica en el menú de la barra de herramientas de la vista previa del diseño.


11

puede probar esto: 1. asegúrese de haber agregado: compilar 'com.android.support:design:25.3.1' (tal vez también debería agregar compilar 'com.android.support.constraint: constraint-layout: 1.0.2' ) 2.ingrese la descripción de la imagen aquí

3.haga clic en Infer Constraints , espero que pueda ayudarlo.


7

Muy bien, sé que esta respuesta es antigua, pero descubrí cómo hacer esto para la versión 3.1.4. Entonces, para mí, este error ocurre cada vez que coloco un nuevo elemento en la jerarquía, por lo que sabía que necesitaba una solución. Después de jugar un poco, encontré cómo hacerlo siguiendo estos pasos:

  1. Haga clic derecho en el objeto y vaya al Centro.

Paso 1

  1. Luego seleccione Horizontalmente.

Paso 2

  1. Repita esos pasos, excepto que haga clic en Verticalmente en lugar de Horizontalmente.

Siempre que ese método aún funcione, después del paso dos, debería ver líneas onduladas que van horizontalmente a través de donde está el elemento, y después del paso tres, tanto horizontal como verticalmente. Después del paso tres, ¡el error desaparecerá!


6

Haga clic con el botón derecho y luego diseñe la pieza en ese componente en el que obtuvo el error y siga estos pasos:

  • [por ej. si se produce un error en texto sin formato]

[1]

Diseño de restricción de texto sin formato> Inferir restricciones:

finalmente el error se ha ido


6

Haga clic derecho en el widget y elija "centro" -> "horizontalmente". Luego elija "centro" -> "verticalmente".


6

Desde Android Studio v3 y versiones posteriores, Infer Constraint se eliminó del menú desplegable.

Utilice el icono de la varita mágica en el menú de la barra de herramientas sobre la vista previa del diseño; está el botón " Inferir restricciones ". Haga clic en este botón, esto agregará automáticamente algunas líneas en el campo de texto y se eliminará la línea roja.

ingrese la descripción de la imagen aquí


4

Solo tienes que hacer clic derecho en el widget y elegir "centro" -> "horizontalmente" y hacerlo de nuevo, luego elegir -> "verticalmente" Esto funcionó para mí ...


0

puede ir a y XML fileluego enfocar el cursor del mouse en su botón, vista de texto o lo que elija para su diseño, luego presione Alt + Enterpara corregirlo, luego de eso el error desaparecerá. Funciona para mí.


0

Después de hacer clic en el icono de la varita mágica para inferir restricciones:

1) En la ventana Proyectos, vaya a Gradle Scripts> build.gradle (Módulo: aplicación)

2) Desplácese hacia abajo hasta las dependencias

3) Busque la implementación 'com.android.support:appcompat-v7:28.0.0-beta03'

4) Cambie esta línea a la implementación 'com.android.support:appcompat-v7:28.0.0-alpha1'

5) Debería aparecer un banner en la parte superior de la ventana, haga clic en Sincronizar ahora en la esquina derecha.

Esto funciona para Android Studio v3.1, haga clic para ver la imagen de la edición en el archivo build.gradle


0

Al crear un diseño, es más fácil trabajar con un control a la vez, en lugar de agregarlos todos a la vez.

Desde la Paleta de diseños, arrastre un ConstraintLayout a la pantalla.

Mueva los controles que desee dentro de ConstraintLayout.

Por lo tanto, ConstraintLayout ahora serán los padres del control, y si cambia al código xml, los controles se anidarán bajo ConstraintLayout.

Haga clic con el botón derecho en su control, seleccione Restricción en el menú y seleccione cómo desea alinearlo con el ConstraintLayout principal, superior, inicio, etc.

Si necesita alinear dos controles entre sí, seleccione ambos controles al mismo tiempo con la tecla Ctrl, luego haga clic derecho para abrir el menú de restricciones.

Más información: https://developer.android.com/training/constraint-layout

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí Puede especificar la distancia de separación de restricciones en la pestaña Diseño de restricciones:

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.