CoordinatorLayout, AppBarLayout y ToolBar – Barra de herramientas no se desplaza fuera de la pantalla

Estoy tratando de hacer que mi barra de herramientas desplazarse de la pantalla, cuando se desplaza hacia arriba de mi ViewPager (ViewPager está dentro de un fragmento que se coloca en FrameLayout) y mostrar la barra de herramientas cuando se desplaza hacia abajo. Estoy tratando de lograr esto usando la Biblioteca de Diseño de Soporte.

Aquí está mi XML:

<?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.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" android:background="?attr/colorPrimaryDark" android:elevation="4dp" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="@android:color/white" android:textSize="20sp" /> <ProgressBar android:id="@+id/progressBar" android:layout_width="32dp" android:layout_height="32dp" android:layout_gravity="right" android:indeterminate="true" android:visibility="gone" /> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/detail_fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.xx.xxx.DetailActivity" tools:ignore="MergeRootFrame" app:layout_behavior="@string/appbar_scrolling_view_behavior" > </FrameLayout> </android.support.design.widget.CoordinatorLayout> 

Sin embargo, la barra de herramientas no responde al desplazamiento . ¿Qué estoy haciendo mal?

4 Solutions collect form web for “CoordinatorLayout, AppBarLayout y ToolBar – Barra de herramientas no se desplaza fuera de la pantalla”

Deberías tener algo como esto:

 <?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" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="@dimen/detail_backdrop_height" android:fitsSystemWindows="true" android:theme="@style/AppTheme"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="@color/primary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/header" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <include layout="@layout/your_scrollable_view" /> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" android:clickable="true" android:onClick="registrarNuevoUsuario" android:src="@drawable/ic_action_check" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom|right|end" /> </android.support.design.widget.CoordinatorLayout> 

Dimens.xml

 <resources> <dimen name="fab_margin">16dp</dimen> <dimen name="detail_backdrop_height">256dp</dimen> </resources> 

Si sólo desea que la barra de herramientas para entrar / salir AppBarLayout es suficiente. No es necesario un CollapsingToolbarLayout . Intente cambiar su FrameLayout en un android.support.v4.widget.NestedScrollView

Se publicó un problema similar en google https://code.google.com/p/android/issues/detail?id=201822

Pero después de la liberación de la Biblioteca de Soporte de Android, revisión 23.2.1 (marzo de 2016) Este error se resuelve.

Corregido: AppBarLayout no se desplaza completamente cuando se utiliza con fitsSystemWindow

Actualice la Biblioteca de soporte técnico a la Biblioteca de soporte técnico de Android Support Library to 23.2.1 O bien para más información.

¿Qué tienes dentro de tu ViewPager? ¿Un ListView o un RecyclerView? De cualquier manera, es posible que desee considerar la posibilidad de agregar el comportamiento a ese elemento de desplazamiento.

 app:layout_behavior="@string/appbar_scrolling_view_behavior" 

Y lo más importante y como se indica en esta otra respuesta de SO , no olvide actualizar sus herramientas de compilación a 22 y sus referencias de gradle a al menos v 22.20 tanto del componente como de la Biblioteca de soporte de diseño:

 compile 'com.android.support:design:22.2.0' compile 'com.android.support:recyclerview-v7:22.2.0' 

Echa un vistazo a esto para un tutorial completo.

  • ¿Cómo hacer transparente la barra de herramientas?
  • Ocultar android.support.v7.widget.Toolbar mediante programación
  • La barra de herramientas se expande deslizando
  • Cómo cambiar el icono de navegación de la barra de herramientas y el margen del menú de opciones
  • Creación de un botón en la barra de herramientas de Android
  • Cómo agregar barra de búsqueda con editar texto en la barra de herramientas
  • Reemplazar la barra de herramientas para cada fragmento de cajón de navegación
  • Esta actividad ya tiene una barra de acción suministrada por la decoración de la ventana (FEATURE_ACTION_BAR)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.