risposta

27

È possibile passare a un file di risorse di layout esistente, aprire l'editor visuale e fare clic con il pulsante destro del mouse su RelativeLayout (ad esempio) e fare clic sull'opzione per convertire in un layout di vincolo.

È inoltre necessario aggiungere la dipendenza Gradle nel file di build.gradle:

compile 'com.android.support.constraint:constraint-layout:1.0.0' 
+4

Se uno sta visualizzando questa risposta l'8 novembre, 2016 e poi, si prega di utilizzare 'com.android.support.constraint: vincolo di layout: 1.0.0-beta3' Infect, il migliore il modo per risolvere questo problema è mostrato in questa risposta http://stackoverflow.com/a/39631045/1362418 –

+0

Questo nuovo layout, dovremmo ancora fornire la modalità orizzontale xml per questo? Oppure scorrerà automaticamente i componenti base su quella corda. – RoCk

+1

Da Android Studio 2.3 in poi, è possibile utilizzare 'com.android.support.constraint: vincolo di layout: 1.0.2'. –

16

Da Docs

Se si sta aggiornando un progetto esistente, procedere come segue:

Assicurati di avere l'ultimo repository di supporto Android (versione 32 o successiva): // Questa era la parte che mancava per me

Fare clic su Strumenti> Android> Manager SDK. Fare clic sulla scheda Strumenti SDK. Selezionare il repository di supporto Android, quindi fare clic su OK.

aggiungere la libreria Vincolo layout aggiornato come una dipendenza nel file build.gradle:

dependencies { 
    compile 'com.android.support.constraint:constraint-layout:1.0.0' 
} 

Nella barra degli strumenti o la notifica di sincronizzazione, fare clic su Progetto Sincronizzazione con Gradle Files.

Per aggiungere un nuovo layout vincolo al progetto:

  • tasto destro del mouse sulla cartella layout del modulo, quindi fare clic su Nuovo> XML> XML Layout. Inserire un nome per il layout e inserire "android.support.constraint.ConstraintLayout" per il tag di root. Fare clic su Fine.

Per convertire un layout esistente a un layout vincolo:

  • Aprire il layout esistente in Android Studio e selezionare la scheda Progettazione nella parte inferiore della finestra dell'editor. Nella finestra della struttura dei componenti, fare clic con il pulsante destro del mouse sul layout e fare clic su Converti in ConstraintLayout.
5

andare anche se questo link da Google CodeLabs. Avrai l'idea di base di Layout di vincoli e come utilizzare diversi vincoli come Manual Constraint, Auto ConnectInference.

Inoltre c'è UI Builder & Inspector che ci aiuterà a costruire un'interfaccia utente più veloce.

4

Ho provato molte versioni, ma non ho potuto risolvere il problema! Finalmente ho lasciato Android Studio per risolvere questo problema.

Nel file XML, accanto al messaggio di errore è possibile visualizzare questa opzione! Fare clic su quella di importare la versione reccomonded

using version 1.0.0-alpha2 of the constraint library which is obsolete

oppure è possibile premere Alt + Invio posizionando il cursore sulla linea di errore

Ho vincolo layout: 1.0.0-alpha8, quando ho premuto Alt + immettere

compilare 'com.android.support.constraint: vincolo di layout: 1.0.0-alpha8'

+0

Sto utilizzando l'ultima versione di Android Studio e non ottenere l'icona Opzioni accanto al messaggio di errore. – AndroidDev

0

1) di progettare un nuovo layout con ConstraintLayout, includere la dipendenza nel file app.gradle

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8' 

Nota: Per ogni vista nel layout, è necessario includere seguenti attributi, altrimenti vengono mostrati i punti di vista a (0,0).

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    ....> 

     <View 
      android:id="@+id/top_view" 
      .../> 

     <View 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/top_view" 
     app:layout_constraintBottom_toTopOf="@+id/bottom_view" 
     ..../> 

     <View 
      android:id="@+id/bottom_view" 
      .../> 

</android.support.constraint.ConstraintLayout> 

2) Per convertire un file di layout esistente in un layout di vincolo:

Aprire il layout esistente in Android Studio e selezionare la scheda Progettazione nella parte inferiore della finestra dell'editor. Nella finestra della struttura dei componenti, fare clic con il pulsante destro del mouse sul layout principale e fare clic su Converti in ConstraintLayout. Quindi includi gli attributi sopra definiti.

0

Modificare le dipendenze nel file build.gradle.

Utilizzare invece compilare com.android.support.constraint:constraint-layout:1.0.0-beta1.

2

aggiungere le dipendenze

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9' 

e creare nuovi file XML di layout -> scheda progettazione goto -> cliccare a destra il layout root e selezionare ultima opzione convertito LinearLayout a ConstraintLayout

Vedi Screenshot

enter image description here

1

si dovrebbe aggiungere repository Maven google nel file di Gradle livello di modulo (parte importante)

repositories { 
    maven { 
     url 'https://maven.google.com' 
    } 
} 

quindi aggiungere questa linea in dipendenze:

compile 'com.android.support.constraint:constraint-layout:1.0.2' 
compile 'com.android.support.constraint:constraint-layout-solver:1.0.2' 
1

Understanding the performance benefits of ConstraintLayout descrive la spesa di una gerarchia di layout tradizionale. Esso fornisce un esempio di questo layout costruito con layout nidificate

Example view

e ferma che

ConstraintLayout esegue circa il 40% in più nella fase misura/disposizione di RelativeLayout

Questo Codelab project mostra come utilizzare il ConstaintLayout per ridurre Visualizza gerarchia e appiattire il layout di cui sopra.

Codelab Project