67 votes

ConstraintLayout vs Coordonnateur de la mise en page?

Ce à mettre en œuvre: ConstraintLayout ou CoordinatorLayout pour une bonne conception de matériaux android ?

89voto

Darish Points 2956

CoordinatorLayout

CoordinatorLayout est un super-alimenté FrameLayout.

Par défaut, si vous ajoutez plusieurs enfants à un FrameLayout, ils se superposent les uns aux autres. Un FrameLayout doit être utilisé le plus souvent pour contenir une seule vue enfant. Le principal attrait de la CoordinatorLayout est sa capacité à coordonner les animations et les transitions de la vue sur en son sein.

ConstraintLayout

ConstraintLayout vous permet de créer des grands et des mises en page complexes avec une vue à plat de la hiérarchie (pas d'affichage imbriqué groupes). Il est similaire à la RelativeLayout dans tous les points de vue sont disposés selon des relations entre frère points de vue et la mère de mise en page, mais il est plus souple que le RelativeLayout et plus facile à utiliser avec Android Studio en page de l'Éditeur.

Ce qui pour mettre en œuvre ConstraintLayout ou CoordinatorLayout pour une bonne conception de matériaux android ?

Vous devrez peut-être utiliser à la fois ConstraintLayout et CoordinatorLayout de construire efficace de l'INTERFACE utilisateur et de matériel d'animations.

78voto

Dmitry Sitnikov Points 553

CoordinatorLayout est destiné à être le premier niveau de mise en page pour activité de gérer les Comportements par exemple, des interactions et des animations.

ConstraintLayouts'objectif principal est de fournir un moyen pratique pour créer un plat de mise en page avec plusieurs enfants (beaucoup plus puissant RelativeLayout).

Ainsi, le CoordinatorLayout est de gérer la complexité du comportement (en particulier les animations) de votre activité de composants, et ConstraintLayout pour les composants à l'emplacement approprié (en particulier les éléments de la liste).

16voto

user1587329 Points 91

Il semble que vous (presque) toujours utiliser un CoordinatorLayout, et parfois utiliser un ConstraintLayout à l'intérieur. Consultez les ressources suivantes

  • Le codelab à https://codelabs.developers.google.com/codelabs/material-design-style/index.html#3 utilise seulement un CoordinatorLayout

  • L'exemple android-application de tournesol ("illustrant Android les bonnes pratiques de développement") utilise ni pour le haut-niveau de l'activité, mais utilise à la fois à l'intérieur de son fragment_plant_detail.xml, avec l' ConstraintLayout étant à l'intérieur de l' CoordinatorLayout:

    <layout ...>
    <data .../>
    <android.support.design.widget.CoordinatorLayout ...>
        <android.support.design.widget.AppBarLayout ...>
            <android.support.design.widget.CollapsingToolbarLayout ...>
                <ImageView... />
                <android.support.v7.widget.Toolbar... />
            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>
        <android.support.v4.widget.NestedScrollView ...>
            <android.support.constraint.ConstraintLayout ...>
                <TextView.../>
                <TextView... />
            </android.support.constraint.ConstraintLayout>
        </android.support.v4.widget.NestedScrollView>
        <android.support.design.widget.FloatingActionButton ... />
    </android.support.design.widget.CoordinatorLayout>
    </layout>
    

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X