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" />
Isuru
fuente

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".

Jay Souper
fuente
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á

Cem U
fuente
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.

onexf
fuente
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.

BertKing
fuente
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á!

tdog
fuente
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

Satyam Mishra
fuente
6

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

Taimoor Hassan
fuente
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í

Vinoth
fuente
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í ...

Ekane 3
fuente
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í.

Mohammad Heydari
fuente
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

pablo.programmer
fuente
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í

vive el amor
fuente