¿Cómo contraer el AppBarLayout animado sin empujar el contenido, similar a WhatsApp Android?

Cómo colapsar una barra de herramientas de forma independiente cuando se desplaza un RecyclerView en un fragmento ViewPager, sin el efecto de colapso que afectan a ViewPager?

Lo que quiero decir es que en WhatsApp Android si se desplaza cualquiera de las 3 listas principales de la barra de herramientas no se mueve con el contenido, en su lugar tiene un eje de animación independiente, que es muy suave y no presiona la vista de contenido. Usted puede ver si me muevo hacia arriba o hacia abajo un poco, el RecycleView no es empujado por la animación de colapso de la barra de herramientas, se mueve de forma independiente:

Introduzca aquí la descripción de la imagen

Tengo la siguiente jerarquía en el diseño MainActivity:

<CoordinatorLayout> <AppBarLayout> <Toolbar/> <TabLayout/> </AppBarLayout> <ViewPager> <!-- Fragments with RecyclerView --> </ViewPager> </CoordinatorLayout> 

Activity_main.xml

  <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|snap|enterAlways" app:popupTheme="@style/AppTheme.PopupOverlay" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:clickable="true" app:layout_behavior="ScrollingFABBehavior" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout> 

Y el contenido de un fragmento es un RecyclerView:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context="fragments.ConversationsFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout> 

Pero cuando desplazo el RecyclerView, si me detengo a mitad de camino la barra de herramientas está empujando el fragmento hacia arriba o hacia abajo abruptamente, en lugar de mover animado independientemente similar a WhatsApp: Introduzca aquí la descripción de la imagen

En este ejemplo es aún más extremo:

Introduzca aquí la descripción de la imagen

Y si no agrego el encaje como una bandera de desplazamiento, la barra de herramientas se detiene a mitad de camino o empuja el fragmento también, dependiendo de la distancia que haya recorrido.

 app:layout_scrollFlags="scroll|snap|enterAlways" 

¿Algún modo de lograr eso usando CoordinatorLayout? Si no, cualquier puntería sería apreciada.

Utilice NestedScrollView para obtener whatsapp,

 <android.support.v4.widget.NestedScrollView android:id="@+id/scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.v4.widget.NestedScrollView> 
  • CoordinatorLayout deja espacio vacío en la parte inferior después de desplazarse
  • Comportamiento extraño con la distribución del coordinador y la barra de herramientas de contracción con contenido superpuesto
  • Android Layout Behavior no se llama cuando es hijo de CollapsingToolbarLayout
  • NestedScrollView (NSV) en CoordinatorLayout (CL): NSV no en la parte superior cuando se carga
  • RecyclerView dentro de CoordinatorLayout, AppBarLayout Asunto de desplazamiento
  • ¿Cómo detectar anidadas fling detenido en CoordinatorLayout.Behavior?
  • Clickable CardView dentro de NestedScroll no activa el desplazamiento
  • CoordinatorLayout bloquea la aplicación con IndexOutOfBoundsException
  • Añadir icono con el título en CollapsingToolbarLayout
  • Establecer layout_anchor en tiempo de ejecución en FloatingActionButton
  • Actividad con pestañas de Android Abajo de la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.