Skip to content

Latest commit

 

History

History
77 lines (62 loc) · 1.99 KB

03-constraint_layout.asc

File metadata and controls

77 lines (62 loc) · 1.99 KB

Android

Pourquoi ?

  • Nombreux layouts imbriqués

  • Des éléments ajoutés aux ViewGroups uniquement pour le positionnement

  • Calculs de repositionnement systématiques et lourds

  • Baisse des performances à l’affichage

Le Constraint Layout

  • Annoncé en mai 2016 à la Google I/O, Studio 2.3

  • Cousin du Relative Layout

    • On lie des widgets entre eux

    • On peut définir un poids comme dans les Linear Layouts

    • On peut grouper les éléments

  • Hiérarchie plate, moins de temps de calcul

Utilisation

  • Dans la librairie de support

  • On rajoute la dépendance dans le build.gradle du projet

implementation 'com.android.support.constraint:constraint-layout:1.0.3'
  • La plupart du temps, l’IDE l’ajoutera pour vous

Placement

  • On doit au moins définir deux contraintes afin de positionner un élément

    • une verticale

    • une horizontale

  • Avec les poignées au milieu des segments

    • Pour aligner d’un côté, on accroche le côté correspondant

    • Pour aligner au centre, on accroche les côtés opposés

Avancé

  • Baseline avec ab

  • marges

    • marge par défaut dans l’éditeur

    • possible de les changer à la main

  • poids (bias)

Chains

  • Répartition d’un ensemble d’éléments sur un axe

  • Chain style

    • spread

    • spread_inside

    • packed

Chain Styles

Points d’ancrage (guidelines)

  • Soit horizontale soit verticale

  • 3 placements possibles

    • en dp depuis la gauche

    • en dp depuis la droite

    • en %

Ce qu’on ne verra pas ensemble

  • Circular positioning (1.1)

  • Groups

    • Utilisé pour la visibilité d’un ensemble d’éléments

  • barriers

    • Concept proche des guidelines