Android Coordinateur


Exemple

2.3

Le CoordinatorLayout est un conteneur quelque peu similaire à FrameLayout mais avec des fonctionnalités supplémentaires, il est appelé FrameLayout super-puissant dans la documentation officielle.

En attachant un CoordinatorLayout.Behavior à un enfant direct de CoordinatorLayout, vous pouvez intercepter les événements tactiles, les encarts de fenêtre, les mesures, la mise en page et le défilement imbriqué.

Pour l'utiliser, vous devrez d'abord ajouter une dépendance pour la bibliothèque de support dans votre fichier de gradle:

compile 'com.android.support:design:25.3.1'

Le numéro de la dernière version de la bibliothèque peut être trouvé ici

Un cas d'utilisation pratique de CoordinatorLayout est la création d'une vue avec un FloatingActionButton . Dans ce cas spécifique, nous allons créer un RecyclerView avec un SwipeRefreshLayout et un FloatingActionButton en plus. Voici comment procéder:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coord_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/recycler_view"/>

    </android.support.v4.widget.SwipeRefreshLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:clickable="true"
        android:color="@color/colorAccent"
        android:src="@mipmap/ic_add_white"
        android:layout_gravity="end|bottom"
        app:layout_anchorGravity="bottom|right|end"/>

</android.support.design.widget.CoordinatorLayout>

Remarquez comment le FloatingActionButton est ancré dans le CoordinatorLayout avec app:layout_anchor="@id/coord_layout"