Acabo de echar un vistazo a la aplicación de demostración de la nueva biblioteca de diseño de soporte de Android. Es proporcionado por Chris Banes en github . A lo largo de la aplicación, CoordinatorLayout
se usa mucho. Además, muchas de las clases de biblioteca de diseño de soporte tales como FloatingActionButton
, SnackBar
, AppBarLayout
etc. comporta de manera diferente cuando dentro usado CoordinatorLayout
.
¿Alguien puede arrojar algo de luz sobre qué es CoordinatorLayout
y en qué se diferencia de otros ViewGroup
s en Android, o al menos proporcionar el camino correcto hacia el aprendizaje CoordinatorLayout
?
CordinatorLayout
?. ¿Qué ventaja tiene sobre los demás?Respuestas:
Aquí está lo que busca.
de documentos
la biblioteca de diseño presenta
CoordinatorLayout
un diseño que proporciona un nivel adicional de control sobre los eventos táctiles entre las 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 videos de demostración de todas las vistas mencionadas anteriormente.
espero que esto ayude :)
fuente
¿Qué es un CoordinatorLayout? No dejes que el nombre elegante te engañe, no es más que un FrameLayout con esteroides
Para comprender mejor qué
CoordinatorLayout
es / hace, primero debe comprender / tener en cuenta lo que significa Coordinar.Si buscas en Google la palabra
Esto es lo que obtienes:
Creo que estas definiciones ayudan a describir lo que hace un CoordinatorLayout por sí solo y cómo se comportan las vistas dentro de él.
Un CoordinatorLayout (un ViewGroup) trae los diferentes elementos (vistas secundarias) de una (̶a̶ ̶c̶o̶m̶p̶l̶e̶x̶ ̶a̶c̶t̶i̶v̶i̶t̶y̶ ̶o̶r̶ ̶a̶n̶ ̶o̶r̶g̶i ̶n̶i̶i̶a̶t̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶
Con la ayuda de un CoordinatorLayout, las vistas de los niños funcionan juntas de manera armoniosa para implementar comportamientos asombrosos como
Las vistas dentro de un CoordinatorLayout negocian con otros para trabajar juntos de manera efectiva al especificar estos comportamientos
Un CoordinatorLayout es una característica genial de Material Design que ayuda a crear diseños atractivos y armonizados.
Todo lo que tiene que hacer es envolver las vistas de su hijo dentro del CoordinatorLayout.
y content_scrolling:
Lo que esto nos da es un diseño que se puede desplazar para contraer la barra de herramientas y ocultar el FloatingActionButton
Abierto:
Cerrado:
fuente
Un punto adicional a tener en cuenta. Dado que OP preguntó específicamente
Y supongo que es por esto.
FAB Button, SnackBar funciona con el concepto de FrameLayout, y dado que CoordinatorLayout tiene la funcionalidad de FrameLayout, puede hacer que otras vistas se comporten de manera diferente.
fuente
CoordinatorLayout es esencialmente el diseño del marco con muchas capacidades que es obvio por el nombre, automatiza la coordinación entre sus hijos y ayuda a construir hermosas vistas. Su implementación se puede ver en Google Play Store App. Cómo la barra de herramientas se colapsa y cambia de color.
Lo mejor de CoordinatorLayout es el comportamiento que le damos a sus descendientes directos o indirectos. Debes haber visto mientras te desplazas toda la IU se pone en movimiento. Es muy probable que el comportamiento esté haciendo su magia.
fuente
Para dar una instantánea rápida de lo que es útil en la documentación de Android :
Utilice CoordinatorLayout para controlar simplemente el comportamiento relacional de sus vistas,
Por ejemplo, si desea que su barra de herramientas se contraiga u oculte. Google lo hizo realmente fácil al presentar AppBarLayout & CollapsingToolbarLayout, que funcionan mejor bajo un CoordinatorLayout.
La otra situación más utilizada es cuando desea que un FloatingActionButton se adhiera a la parte inferior de su CollapsingToolbar y se mueva con él, colocándolos debajo de un coordinatorLayout y utilícelos
app:layout_anchor="@id/YourAppBarId"
para el pegamento (!) Yapp:layout_anchorGravity="bottom|end"
como posición será suficiente para que vea el obra de magia!Al usar este diseño como contexto, las vistas secundarias tendrán una mejor colaboración y se comportarán de una manera inteligente porque se conocerán entre sí a través del contexto CoordinatorLayout, esto significa que sus Botones FloatingAction ya no se superpondrán con un snackBar, etc.
Estos fueron solo un resumen rápido de las partes más útiles, por lo que si desea ahorrar más tiempo animando su aplicación, valdrá la pena profundizar un poco más en el tema.
ver la plantilla de actividad de la vista de desplazamiento de Google
fuente
Una cosa que es importante tener en cuenta es que CoordinatorLayout no tiene ningún conocimiento innato del trabajo FloatingActionButton o AppBarLayout; solo proporciona una API adicional en forma de Coordinator.Behavior, que permite que las vistas de los niños controlen mejor los eventos táctiles y los gestos así como declarar dependencias entre sí y recibir devoluciones de llamada a través de onDependentViewChanged ().
Las vistas pueden declarar un comportamiento predeterminado mediante el uso de la anotación CoordinatorLayout.DefaultBehavior (YourView.Behavior.class), o establecerlo en los archivos de diseño con la aplicación: layout_behavior = "com.example.app.YourView $ Behavior" atributo. Este marco hace posible que cualquier vista se integre con CoordinatorLayout.
¡Disponible ahora! La biblioteca de diseño está disponible ahora, así que asegúrese de actualizar el repositorio de soporte de Android en el SDK Manager. A continuación, puede comenzar a utilizar la biblioteca de diseño con una única dependencia nueva:
compile 'com.android.support:design:22.2.0' Tenga en cuenta que, dado que la biblioteca de diseño depende de las bibliotecas de soporte de Support v4 y AppCompat, estas se incluirán automáticamente cuando agregue la dependencia de la biblioteca de diseño. También nos encargamos de que estos nuevos widgets se puedan usar en la vista Diseño del editor de diseño de Android Studio (encuéntrelos en CustomView), lo que le brinda una manera más fácil de obtener una vista previa de algunos de estos nuevos componentes.
La biblioteca de diseño, AppCompat y toda la biblioteca de soporte de Android son herramientas importantes para proporcionar los componentes básicos necesarios para crear una aplicación de Android moderna y de excelente apariencia sin construir todo desde cero.
fuente
El
CoordinatorLayout
es un superpoderosoFrameLayout
.De forma predeterminada, si agrega varios hijos a
FrameLayout
, se superpondrán entre sí. AFrameLayout
debe usarse con mayor frecuencia para mantener una vista secundaria única. El principal atractivo delCoordinatorLayout
es su capacidad para coordinar las animaciones y transiciones de las vistas dentro de él. Usando solo XML, puede describir un diseño donde un FAB se mueve fuera del camino de una Snackbar entrante, por ejemplo, o tiene un FAB (o cualquier otra Vista en realidad) que aparentemente está adjunto a otro widget y se mueve en la pantalla con el widget.Aquí está el tutorial de la fuente principal .
fuente