¿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:
- ¿Cómo imitar el comportamiento de las fases 3 de la parte inferior de Google Maps?
- Android: Barra de estado transparente con colores dinámicos de la acciónBar y DrawerLayout
- FloatingActionButton con SnackBar y CoordinatorLayout no funcionará con proguard
- Página de perfil de diseño de material Android
- Cómo deshabilitar el desplazamiento de AppBarLayout en CoordinatorLayout?
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:
En este ejemplo es aún más extremo:
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.
- Utilizar windowTranslucentStatus con la barra de herramientas oculta
- Webview dentro de NestedScrollView causa problema de altura
- Cómo utilizar el diseño del coordinador con el fragmento como "vista de desplazamiento"
- ¿Cómo agregar la vista inferior a una disposición de coordinador con el paginador de la visión?
- Mostrar barra de herramientas después de oculto por desplazamiento en el botón de clic
- Diseño del coordinador, actividad debajo de la barra de herramientas
- Efecto Parallax con la barra desplegable no funcionando, imagen en el encabezado aplastado
- FloatingActionButton aparece en pantalla cuando se utiliza TabLayout y ViewPager
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>
- Actualización dinámica de TabLayout sin cambiar la ficha seleccionada
- Cómo configurar el icono grande para la notificación de GCM