Superposición de vista de desplazamiento con AppBarLayout

Quiero implementar el patrón ‘Espacio flexible con superposición de contenido’ de las técnicas de desplazamiento de diseño de Material , como en este video : Espacio flexible con superposición de contenido GIF

Mi diseño XML ahora se ve así:

            

¿Hay una manera fácil de lograr esto usando la Biblioteca de diseño? ¿O tengo que crear un CoordinatorLayout.Behavior personalizado para hacer esto?

De hecho, la superposición de la vista de desplazamiento con AppBarLayout es una función incluida de la Biblioteca de soporte de diseño de Android : puede usar el atributo app:behavior_overlapTop en su NestedScrollView (o cualquier vista usando ScrollingViewBehavior ) para establecer el monto de superposición:

  

Tenga en cuenta que la app:behavior_overlapTop solo funciona en las vistas que tienen la app:layout_behavior="@string/appbar_scrolling_view_behavior" ya que es el comportamiento que utiliza el atributo (no la vista o el Parent ViewGroup, como suelen aplicarse los atributos), de ahí el prefijo behavior_

O configurarlo mediante progtwigción mediante setOverlayTop () :

 NestedScrollView scrollView = ... CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) scrollView.getLayoutParams(); AppBarLayout.ScrollingViewBehavior behavior = (AppBarLayout.ScrollingViewBehavior) params.getBehavior(); behavior.setOverlayTop(128); // Note: in pixels 

Además de la respuesta aceptada , llame a setTitleEnabled (false) en su CollapsingToolbarLayout para que el título permanezca fijo en la parte superior como en el ejemplo.

Me gusta esto:

 CollapsingToolbarLayout.setTitleEnabled(false); 

o agregándolo en xml como este:

 app:titleEnabled="false" 

De lo contrario, el título podría desaparecer detrás del contenido superpuesto, a menos que, por supuesto, ese es el comportamiento que desea.