Android
ContrainteLayout
Recherche…
Introduction
ConstraintLayout
est un ViewGroup
qui vous permet de positionner et de dimensionner les widgets de manière flexible. Il est compatible avec Android 2.3 (API niveau 9) et supérieur.
Il vous permet de créer des mises en page volumineuses et complexes avec une hiérarchie de vues plates. Il est similaire à RelativeLayout
en ce sens que toutes les vues sont disposées en fonction des relations entre les vues frères et la présentation parent, mais elles sont plus flexibles que RelativeLayout
et plus faciles à utiliser avec l'éditeur de mise en page d'Android Studio.
Syntaxe
ContrainteLayout
public void addView (Voir enfant, int index, ViewGroup.LayoutParams params)
public ConstraintLayout.LayoutParams generateLayoutParams (AttributeSet attrs)
public void onViewAdded (Voir la vue)
public void onViewRemoved (Voir la vue)
void public removeView (Voir la vue)
public void requestLayout ()
booléen protégé checkLayoutParams (paramètres de ViewGroup.LayoutParams)
protected ConstraintLayout.LayoutParams generateDefaultLayoutParams ()
protected ViewGroup.LayoutParams generateLayoutParams (paramètres de ViewGroup.LayoutParams)
void protégé surLayout (booléen modifié, int gauche, int top, int droite, int bottom)
protected onMeasure (int widthMeasureSpec, int heightMeasureSpec)
ContrainteLayout.LayoutParams
public void resolveLayoutDirection (int layoutDirection)
annulation publique validate ()
protected void setBaseAttributes (TypedArray a, int widthAttr, int heightAttr)
Paramètres
Paramètre | Détails |
---|---|
enfant | La View à ajouter à la mise en page |
indice | L'index de la View dans la hiérarchie de présentation |
params | Le LayoutParams de la View |
attrs | Le AttributeSet qui définit les LayoutParams |
vue | La View qui a été ajoutée ou supprimée |
modifié | Indique si cette View a changé de taille ou de position |
la gauche | La position de gauche par rapport à la View parent |
Haut | La position supérieure par rapport à la View parent |
droite | La bonne position par rapport au parent View |
bas | La position du bas par rapport à la View parent |
widthMeasureSpec | L'espace horizontal requis par la View parent |
heightMeasureSpec | Les exigences d'espace vertical imposées par la View parent |
layoutDirection | - |
une | - |
widthAttr | - |
heightAttr | - |
Remarques
Sur Google IO 2016, Google a annoncé une nouvelle mise en page Android appelée ConstraintLayout.
Faites attention car actuellement, cette mise en page est une version bêta .
Pour en savoir plus sur la disposition des contraintes:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
Ajouter ConstraintLayout à votre projet
Pour travailler avec ConstraintLayout, vous avez besoin d'Android Studio version 2.2 ou plus récent et avez au moins la version 32 (ou supérieure) du référentiel de support Android.
- Ajoutez la bibliothèque de contrainte de contrainte en tant que dépendance dans votre fichier
build.gradle
:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
- Projet de synchronisation
Pour ajouter une nouvelle disposition de contrainte à votre projet:
- Cliquez avec le bouton droit sur le répertoire de disposition de votre module, puis cliquez sur
New > XML > Layout XML.
- Entrez un nom pour la mise en page et entrez
"android.support.constraint.ConstraintLayout"
pour la balise racine. - Cliquez sur Terminer .
Sinon, ajoutez simplement un fichier de mise en page:
<?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>
Chaînes
Depuis ConstraintLayout
alpha 9, les chaînes sont disponibles. Une chaîne est un ensemble de vues à l'intérieur d'un ConstraintLayout
qui sont connectées entre elles, c.-à-d. A connectée à B avec une contrainte et B connectée à A avec une autre contrainte.
Exemple:
<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>
Dans cet exemple, les deux vues sont positionnées les unes sur les autres et les deux sont centrées verticalement. Vous pouvez modifier la position verticale de ces vues en ajustant le biais de la chaîne. Ajoutez le code suivant au premier élément d'une chaîne:
app:layout_constraintVertical_bias="0.2"
Dans une chaîne verticale, le premier élément est la vue la plus haute et, dans une chaîne horizontale, la vue la plus à gauche. Le premier élément définit le comportement de toute la chaîne.
Les chaînes sont une nouvelle fonctionnalité et sont fréquemment mises à jour. Voici une documentation Android officielle sur les chaînes.