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.

  1. 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'
}
  1. Projet de synchronisation

Pour ajouter une nouvelle disposition de contrainte à votre projet:

  1. Cliquez avec le bouton droit sur le répertoire de disposition de votre module, puis cliquez sur New > XML > Layout XML.
  2. Entrez un nom pour la mise en page et entrez "android.support.constraint.ConstraintLayout" pour la balise racine.
  3. 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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow