Ricerca…


introduzione

ConstraintLayout è un ViewGroup che consente di posizionare e dimensionare i widget in modo flessibile. È compatibile con Android 2.3 (livello API 9) e versioni successive.

Permette di creare layout grandi e complessi con una gerarchia di viste piatte. È simile a RelativeLayout in quanto tutte le visualizzazioni sono disposte in base alle relazioni tra le viste di pari livello e il layout principale, ma è più flessibile di RelativeLayout e più facile da utilizzare con l'Editor di layout di Android Studio.

Sintassi

  • ConstraintLayout

    • public void addView (Visualizza child, int index, ViewGroup.LayoutParams params)

    • ConstraintLayout pubblico.LayoutParams generaLayoutParams (AttributeSet attrs)

    • public void onViewAdded (Visualizza vista)

    • public void onViewRemoved (Visualizza visualizzazione)

    • public void removeView (Visualizza visualizzazione)

    • public void requestLayout ()

    • protetto booleano checkLayoutParams (Parametri ViewGroup.LayoutParams)

    • protetto ConstraintLayout.LayoutParams generateDefaultLayoutParams ()

    • ViewGroup.LayoutParams protetti generateLayoutParams (Parametri ViewGroup.LayoutParams)

    • protected void onLayout (booleano modificato, int left, int top, int right, int bottom)

    • protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

  • ConstraintLayout.LayoutParams

    • public void resolveLayoutDirection (int layoutDirection)

    • public void validate ()

    • protected void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)

Parametri

Parametro Dettagli
bambino La View da aggiungere al layout
indice L'indice della View nella gerarchia del layout
params Il LayoutParams della View
attrs L' AttributeSet che definisce il LayoutParams
vista La View che è stata aggiunta o rimossa
cambiato Indica se questa View ha cambiato dimensione o posizione
sinistra La posizione sinistra, relativa alla View genitore
superiore La posizione superiore, relativa alla View genitore
destra La posizione corretta, relativa alla View genitore
parte inferiore La posizione in basso, relativa alla View genitore
widthMeasureSpec I requisiti di spazio orizzontale imposti dalla View principale
heightMeasureSpec I requisiti di spazio verticale imposti dalla View padre
layoutDirection -
un -
widthAttr -
heightAttr -

Osservazioni

A Google IO 2016 Google ha annunciato un nuovo layout Android denominato ConstraintLayout.
Fai attenzione perché al momento questo layout è una versione beta .

Più informazioni sul layout dei vincoli:

https://codelabs.developers.google.com/codelabs/constraint-layout/index.html

Aggiunta di ConstraintLayout al progetto

Per lavorare con ConstraintLayout, è necessario Android Studio versione 2.2 o successiva e avere almeno la versione 32 (o successiva) del repository di supporto Android.

  1. Aggiungi la libreria Constraint Layout come dipendenza nel tuo file build.gradle :
dependencies {
   compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
  1. Sincronizza progetto

Per aggiungere un nuovo layout di vincoli al tuo progetto:

  1. Fare clic con il tasto destro sulla directory di layout del modulo, quindi fare clic su New > XML > Layout XML.
  2. Inserisci un nome per il layout e inserisci "android.support.constraint.ConstraintLayout" per il tag di root.
  3. Fai clic su Fine .

Altrimenti aggiungi semplicemente un file di layout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</android.support.constraint.ConstraintLayout>

Catene

Poiché ConstraintLayout alpha 9, le catene sono disponibili. Una Catena è un insieme di viste all'interno di un ConstraintLayout che sono collegate in modo bidirezionale tra loro, cioè A collegato a B con un vincolo e B collegato ad A con un altro vincolo.

Esempio:

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

    <!-- this view is linked to the bottomTextView --> 
    <TextView
        android:id="@+id/topTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        app:layout_constraintBottom_toTopOf="@+id/bottomTextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainPacked="true"/>

    <!-- this view is linked to the topTextView at the same time --> 
    <TextView
        android:id="@+id/bottomTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bottom\nMkay"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/topTextView"/>

</android.support.constraint.ConstraintLayout>

In questo esempio, le due viste sono posizionate una sotto l'altra ed entrambe sono centrate verticalmente. È possibile modificare la posizione verticale di queste viste regolando il bias della catena. Aggiungi il seguente codice al primo elemento di una catena:

app:layout_constraintVertical_bias="0.2"

In una catena verticale, il primo elemento è la vista più in alto, e in una catena orizzontale è la vista più a sinistra. Il primo elemento definisce il comportamento dell'intera catena.

Le catene sono una nuova funzionalità e vengono aggiornate frequentemente. Ecco una documentazione ufficiale Android su Chains.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow