Questa visione non è vincolata


95

Ricevo il seguente errore e sto utilizzando Android Studio 2.2 Preview 3. Ho cercato su Google ma non sono riuscito a trovare alcuna risorsa.

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

inserisci qui la descrizione dell'immagine

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

Risposte:


152

Per risolvere rapidamente questo problema, utilizza questo collegamento molto utile in Android Studio:

Fare clic con il pulsante destro del mouse sul widget in questione> Layout vincolo> Dedica vincoli:

inserisci qui la descrizione dell'immagine

Successivamente, puoi modificare i vincoli come descritto qui: https://stackoverflow.com/a/37960888/5556250

Aggiornare

Questo non è corretto per Android Studio v3 e versioni successive. Come da commento di @ purpleladydragons :

"Constraint Layout" non è nel menu a discesa. Usa l'icona della bacchetta magica nel menu della barra degli strumenti sopra l'anteprima del disegno; c'è il pulsante "Infer Constraints".


2
Grazie mille per la tua soluzione, sono un principiante assoluto, non avevo idea di cosa fosse sbagliato nella posizione del widget
Atul Chavan

2
Ottima soluzione anche se vorrei che Android Studio memorizzasse le posizioni dall'inizio, invece delle posizioni in fase di esecuzione. Una domanda migliore è perché Google ha pensato che sia una buona idea memorizzare la posizione solo durante il tempo di esecuzione? Questo è un passaggio non necessario per fare clic sugli sviluppatori per dedurre la posizione.
Antony

Molte grazie! Molto utile
Paul

23
Sto utilizzando Android Studio 3.0 - "Constraint Layout" non era nel menu a discesa quando ho fatto clic con il pulsante destro del mouse su un widget. Mi sono reso conto che c'era un'icona che sembrava una bacchetta magica nel menu della barra degli strumenti sopra l'anteprima del design, che è anche un pulsante "Infer Constraints".
purpleladydragons

la soluzione non è stata trovata in Android Studio versione 3 o superiore
Mohammad Heydari

74

Soluzione

Basta fare clic su questo e sarà risolto


Non vedo quella barra degli strumenti con quel pulsante. Come lo trovo?
i_am_david

Non so se stai usando una versione diversa di Android Studio. Per favore controlla quel pulsante, dovrebbe essere da qualche parte lì. Se non riesci a trovare, ci sono altre soluzioni
Cem U

12

È necessario assegnare manualmente un valore ai vincoli quando si utilizza il nuovo editor di layout oppure i vincoli mancanti possono essere aggiunti automaticamente facendo clic sul pulsante della bacchetta magica nel menu della barra degli strumenti dell'anteprima del disegno.


11

puoi provare questo: 1. assicurati di aver aggiunto: compile 'com.android.support:design:25.3.1' (forse dovresti anche aggiungere compile 'com.android.support.constraint: constraint-layout: 1.0.2' ) 2.inserisci qui la descrizione dell'immagine

3.Fai clic su Infer Constraints , spero che possa aiutarti.


7

Va bene, quindi so che questa risposta è vecchia, ma ho scoperto come farlo per la versione 3.1.4. Quindi per me questo errore si verifica ogni volta che inserisco un nuovo elemento nella gerarchia, quindi sapevo di aver bisogno di una soluzione. Dopo aver armeggiato un po 'ho scoperto come farlo seguendo questi passaggi:

  1. Fare clic con il pulsante destro del mouse sull'oggetto e andare al centro.

Passo 1

  1. Quindi seleziona Orizzontalmente.

Passo 2

  1. Ripeti questi passaggi, tranne fare clic su Verticale invece che Orizzontalmente.

A condizione che il metodo funzioni ancora, dopo il passaggio due dovresti vedere linee ondulate che attraversano orizzontalmente il punto in cui si trova l'elemento e dopo il passaggio tre, sia orizzontalmente che verticalmente. Dopo il passaggio tre, l'errore scomparirà!


6

Fare clic con il pulsante destro del mouse, quindi progettare la parte su quel componente in cui si è verificato l'errore e seguire questi passaggi:

  • [per es. se si verifica un errore in testo normale]

[1]

Layout vincoli di testo normale> Vincoli dedotti:

finalmente l'errore è andato


6

Fare clic con il pulsante destro del mouse sul widget e scegliere "centro" -> "orizzontalmente". Quindi scegli "centro" -> "verticalmente".


6

Da Android Studio v3 e versioni successive, Infer Constraint è stato rimosso dal menu a discesa.

Usa l' icona della bacchetta magica nel menu della barra degli strumenti sopra l'anteprima del disegno; c'è il pulsante " Infer Constraints ". Fare clic su questo pulsante, questo aggiungerà automaticamente alcune linee nel campo di testo e la linea rossa verrà rimossa.

inserisci qui la descrizione dell'immagine


4

Devi solo fare clic con il pulsante destro del mouse sul widget e scegliere "centro" -> "orizzontalmente" e farlo di nuovo, quindi scegliere -> "verticalmente" Questo ha funzionato per me ...


0

puoi andare su XML filequindi focalizzare il cursore del mouse sul pulsante, sulla visualizzazione del testo o su qualsiasi cosa tu scelga per il tuo layout, quindi premere Alt + Enterper risolverlo, dopodiché l'errore sarà sparito. funziona per me.


0

Dopo aver fatto clic sull'icona della bacchetta magica per dedurre i vincoli:

1) Nella finestra Progetti, vai su Gradle Scripts> build.gradle (Modulo: app)

2) Scorri verso il basso fino alle dipendenze

3) Cerca l'implementazione "com.android.support:appcompat-v7:28.0.0-beta03"

4) Cambia questa riga nell'implementazione "com.android.support:appcompat-v7:28.0.0-alpha1"

5) Dovrebbe apparire un banner nella parte superiore della finestra, fare clic su Sincronizza ora nell'angolo destro.

Funziona per Android Studio v3.1, fare clic per l'immagine di modifica nel file build.gradle


0

Quando si crea un layout, è più facile lavorare con un controllo alla volta, invece di aggiungerli tutti in una volta.

Dalla tavolozza dei layout, trascina un ConstraintLayout sullo schermo.

Spostare i controlli desiderati all'interno di ConstraintLayout.

Quindi il ConstraintLayout sarà ora i genitori del controllo e se si passa al codice xml, i controlli verranno nidificati sotto ConstraintLayout.

Fare clic con il pulsante destro del mouse sul controllo, selezionare Vincolo dal menu e selezionare come si desidera allinearlo al ConstraintLayout padre, in alto, all'inizio, ecc.

Se è necessario allineare due controlli l'uno rispetto all'altro, selezionare entrambi i controlli contemporaneamente con il tasto Ctrl, quindi fare clic con il tasto destro per aprire il menu dei vincoli.

Maggiori informazioni: https://developer.android.com/training/constraint-layout

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine È possibile specificare la distanza di separazione dei vincoli nella scheda Layout vincolo:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.