Android
ConstraintLayout
Zoeken…
Invoering
ConstraintLayout
is een ViewGroup
waarmee u widgets op een flexibele manier kunt positioneren en ViewGroup
. Het is compatibel met Android 2.3 (API level 9) en hoger.
Hiermee kunt u grote en complexe lay-outs maken met een platte weergavehiërarchie. Het is vergelijkbaar met RelativeLayout
in RelativeLayout
dat alle weergaven zijn ingedeeld volgens relaties tussen broer en zus en de bovenliggende lay-out, maar het is flexibeler dan RelativeLayout
en gemakkelijker te gebruiken met de Layout Editor van Android Studio.
Syntaxis
ConstraintLayout
public void addView (View child, int index, ViewGroup.LayoutParams params)
public ConstraintLayout.LayoutParams genererenLayoutParams (AttributeSet attrs)
openbare nietig op onViewAdded (weergave bekijken)
publieke nietig op ViewRemoved (View view)
public void removeView (View view)
openbaarheidsverzoekLayout ()
beschermde booleaanse controleLayoutParams (ViewGroup.LayoutParams params)
beschermde ConstraintLayout.LayoutParams genererenDefaultLayoutParams ()
beveiligde ViewGroup.LayoutParams genererenLayoutParams (ViewGroup.LayoutParams params)
beschermde nietig op Lay-out (boolean gewijzigd, int links, int boven, int rechts, int onder)
beschermde ongeldige waarde op Measure (int widthMeasureSpec, int heightMeasureSpec)
ConstraintLayout.LayoutParams
public void solveLayoutDirection (int layoutDirection)
openbare nietigheid valideren ()
beschermde ongeldige setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)
parameters
Parameter | Details |
---|---|
kind | De View die aan de lay-out moet worden toegevoegd |
inhoudsopgave | De index van de View in de lay-outhiërarchie |
params | De LayoutParams van de View |
attrs | De AttributeSet die de LayoutParams definieert |
visie | De View die is toegevoegd of verwijderd |
veranderd | Geeft aan of deze View grootte of positie heeft gewijzigd |
links | De linkerpositie ten opzichte van de bovenliggende View |
top | De bovenste positie ten opzichte van de bovenliggende View |
Rechtsaf | De juiste positie ten opzichte van de bovenliggende View |
bodem | De onderste positie ten opzichte van de bovenliggende View |
widthMeasureSpec | De vereisten voor horizontale ruimte opgelegd door de bovenliggende View |
heightMeasureSpec | De verticale ruimtevereisten opgelegd door de bovenliggende View |
layoutDirection | - |
een | - |
widthAttr | - |
heightAttr | - |
Opmerkingen
Op Google IO 2016 kondigde Google een nieuwe Android-lay-out aan met de naam ConstraintLayout.
Let op, want deze lay-out is momenteel een bètaversie .
Meer informatie over beperkingslay-out:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
ConstraintLayout toevoegen aan uw project
Om met ConstraintLayout te werken, hebt u Android Studio versie 2.2 of nieuwer nodig en ten minste versie 32 (of hoger) van Android Support Repository.
- Voeg de Constraint Layout-bibliotheek toe als afhankelijkheid in uw
build.gradle
bestand:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
- Synchroniseer project
Om een nieuwe beperkingslay-out aan uw project toe te voegen:
- Klik met de rechtermuisknop op de lay -outmap van uw module en klik vervolgens op
New > XML > Layout XML.
- Voer een naam in voor de lay-out en voer
"android.support.constraint.ConstraintLayout"
voor de root-tag. - Klik op Voltooien .
Anders voegt u gewoon een lay-outbestand toe:
<?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>
Chains
Sinds ConstraintLayout
alpha 9 zijn ketens beschikbaar. Een keten is een reeks aanzichten binnen een ConstraintLayout
die op een bidirectionele manier onderling zijn verbonden, dat wil zeggen A verbonden met B met een beperking en B verbonden met A met een andere beperking.
Voorbeeld:
<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 dit voorbeeld zijn de twee aanzichten onder elkaar geplaatst en zijn beide verticaal gecentreerd. U kunt de verticale positie van deze aanzichten wijzigen door de voorspanning van de ketting aan te passen. Voeg de volgende code toe aan het eerste element van een keten:
app:layout_constraintVertical_bias="0.2"
In een verticale keten is het eerste element een bovenste weergave en in een horizontale keten de meest linkse weergave. Het eerste element definieert het gedrag van de hele keten.
Kettingen zijn een nieuwe functie en worden regelmatig bijgewerkt. Hier is een officiële Android-documentatie over kettingen.