¿Qué es CoordinatorLayout?

Acabo de echar un vistazo a la aplicación de demostración de la nueva biblioteca de diseño de soporte para Android. Es proporcionado por Chris Banes en github . A través de la aplicación, CoordinatorLayout se utiliza pesadamente. Además, muchas de las clases de biblioteca de diseño de soporte, como FloatingActionButton , SnackBar , AppBarLayout , etc. se comportan de manera diferente cuando se usan dentro de CoordinatorLayout .

¿Puede alguien por favor arrojar algunas luces en lo que es CoordinatorLayout y cómo es diferente de otros ViewGroup s en android, o al menos proporcionar la ruta correcta hacia el aprendizaje CoordinatorLayout .

Aquí está usted está buscando.

De documentos

La biblioteca de diseño introduce CoordinatorLayout , un diseño que proporciona un nivel adicional de control sobre eventos táctiles entre vistas secundarias, algo que muchos de los componentes de la biblioteca de diseño aprovechan.

https://android-developers.googleblog.com/2015/05/android-design-support-library.html

En este enlace verá los vídeos de demostración de todas las vistas mencionadas anteriormente.

espero que esto ayude 🙂

Un punto adicional a tener en cuenta. Desde OP específicamente preguntó

Además, muchas de las clases de libabry de diseño de soporte como FloatingActionButton, SnackBar, AppBarLayout etc. se comportan de manera diferente cuando se usan dentro de CoordinatorLayout.

Y supongo que es por esto.

CoordinatorLayout es un FrameLayout súper potente.

Botón FAB, SnackBar trabaja en el concepto de FrameLayout, y puesto que el CoordinatorLayout sí mismo tiene funcionalidad de FrameLayout, puede hacer que otras vistas se comporten diferentemente !.

¿Qué es un CoordinatorLayout? No deje que el nombre de fantasía engañarlo, no es más que un FrameLayout en los esteroides

Para entender mejor lo que es un CoordinatorLayout , primero debe entender / tener en cuenta lo que significa Coordinate.

Si usted Google la palabra

Coordinar

Esto es lo que obtienes:

Introduzca aquí la descripción de la imagen

Creo que estas definiciones ayudan a describir lo que hace un CoordinatorLayout por sí mismo y cómo se comportan las opiniones en su interior.

Un CoordinatorLayout (un ViewGroup) trae los diferentes elementos (vistas secundarias) de un layout (̶a̶ ̶c̶o̶m̶p̶l̶e̶x̶ ̶a̶c̶t̶i̶v̶i̶t̶y̶ ̶o̶r̶ ̶a̶n̶ ̶o̶r̶g̶a̶n̶i̶z̶a̶t̶i̶o̶n̶) into en una relación armoniosa o eficiente:

Con la ayuda de un CoordinatorLayout, las vistas de los niños trabajan juntos armoniosamente para implementar comportamientos impresionantes como

Arrastres, golpes, lanzamientos, o cualquier otro gesto.

Las vistas dentro de un CoordinatorLayout negocian con otros para trabajar juntos eficazmente especificando estos comportamientos

Un CoordinatorLayout es una característica estupenda del diseño material que ayuda a crear diseños atractivos y armonizados.

Todo lo que usted tiene que hacer es envolver sus opiniónes del niño dentro del CoordinatorLayout.

 <?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:fitsSystemWindows="true" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/AppTheme.PopupOverlay" /> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_scolling" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" app:layout_anchor="@id/app_bar" app:layout_anchorGravity="bottom|end" app:srcCompat="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout> 

Y content_scrolling:

 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.byte64.coordinatorlayoutexample.ScollingActivity" tools:showIn="@layout/activity_scolling"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/text_margin" android:text="@string/large_text" /> </android.support.v4.widget.NestedScrollView> 

Lo que esto nos da es un diseño que se puede desplazar para contraer la barra de herramientas y ocultar el FloatingActionButton

Abierto:

Introduzca aquí la descripción de la imagen

Cerrado:

Introduzca aquí la descripción de la imagen

CoordinatorLayout es esencialmente la disposición del marco con la porción de capacidades que es obvia del nombre, automatiza la coordinación entre sus niños y ayuda a construir visiónes hermosas. Su aplicación se puede ver en Google Play Store App.How la barra de herramientas colapsa y cambia de color.

Para dar una rápida instantánea de lo que es útil en el Android Documentación :

Utilice CoordinatorLayout para controlar simplemente el comportamiento relacional de sus vistas,

Por ejemplo, si desea que su barra de herramientas para colapsar u ocultar. Google lo hizo realmente fácil introduciendo AppBarLayout & CollapsingToolbarLayout, que funcionan mejor bajo CoordinatorLayout.

La otra situación más utilizada es cuando quieres que FloatingActionButton se adhiera a la parte inferior de tu CollapsingToolbar y se mueva con ella, poniéndolos bajo un coordinador app:layout_anchor="@id/YourAppBarId" y usa app:layout_anchor="@id/YourAppBarId" para el pegamento (!) Y app:layout_anchorGravity="bottom|end" como posición será suficiente para que usted pueda ver el trabajo mágico!

Al utilizar este diseño como un contexto, las vistas secundarias tendrán una mejor colaboración y se comportarán de una manera inteligente, ya que serán conscientes entre sí a través del contexto CoordinatorLayout, esto significa que sus botones de FloatingAction ya no se superponen por un snackBar, etc.

Estos fueron sólo un resumen rápido de las partes más útiles, por lo que si desea ahorrar más tiempo en la animación de su aplicación que valdrá la pena tener poco profundo buceo en el tema.

Consulte la plantilla de actividad de la vista Desplazamiento de Google

  • Android - aplicar selectableItemBackground en xml con soporte v7
  • Los fragmentos anidados desaparecen durante la animación de transición
  • Arriba navegación roto en JellyBean?
  • NullPointerException al cambiar entre fragmentos que contienen RecyclerView
  • "La actividad ha sido destruida" a veces cuando se puebla viewpager con fragmentos
  • Plugin Error: plugin necesario "Android Support" está deshabilitado
  • GetSupportFragmentManager () causa java.lang.IllegalStateException: No se puede realizar esta acción después de onSaveInstanceState
  • RequiereApi vs TargetApi anotaciones android
  • ¿Es esto un error en la biblioteca de diseño de soporte para Android?
  • Android Multiline Snackbar
  • MenuItemCompat.setOnActionExpandListener no hace nada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.