Cómo ocultar la barra de herramientas después de colapsar mientras que recyclerView desplazamiento hacia abajo
Cómo ocultar la barra de herramientas después de colapsar mientras recyclerView desplazamiento hacia abajo, mostrar barra de herramientas cuando recyclerView desplazamiento hacia arriba y expandir CollapsingToolbarLayout al final de la lista? Ahora CollapsingToolbarLayout sólo colapsar, y la barra de herramientas está mostrando todo el tiempo cuando se desplaza.
<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:id="@+id/coordinatorlayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".screens.MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appbarlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:minHeight="@dimen/actionBarHeight" app:contentScrim="@color/colorPrimary" app:expandedTitleTextAppearance="@style/TransparentText" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/toolbar_image" android:layout_width="match_parent" android:layout_height="180dp" android:adjustViewBounds="true" android:background="#229944" android:contentDescription="@null" android:scaleType="fitCenter"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/actionBarHeight" android:minHeight="@dimen/actionBarHeight" app:layout_collapseMode="pin" app:layout_scrollFlags="scroll|enterAlwaysCollapsed" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_gravity="bottom" app:layout_scrollFlags="scroll" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout>
- CollapsingToolbarLayout comportamiento de desplazamiento en las tabletas
- Barra de herramientas de colapso animado suave con Android Design Support Library
- CollapsingToolbarLayout ImageView no se puede desplazar
- Detener CollapsingToolbar de colapso después de NestedScrollView se queda sin contenido para desplazarse
- CollapsingToolbarLayout no funciona correctamente
- ¿Cómo puedo determinar que CollapsingToolbar está contraído?
- Cómo eliminar programaticamente un comportamiento de diseño de mi NestedScrollView?
- CollapsingToolbarLayout | Aspectos de desplazamiento y diseño
- CollapsingToolbarLayout setTitle () no se actualiza a menos que se colapse
- CollapsingToolbarDescargar y ocultar la barra de herramientas mientras se desplaza
- Mostrar la vista cuando la barra de herramientas se derrumba
- Colapsar el diseño de la barra de herramientas con el logotipo, el título, el subtítulo en la barra de herramientas
- Android CollapsingToolbarLayout colapse Listener
Esto debería funcionar perfectamente. Probado y funcionando en API 17
<android.support.design.widget.CoordinatorLayout android:id="@+id/careers_coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".activity.CareersActivity" xmlns:tools="http://schemas.android.com/tools"> <android.support.design.widget.AppBarLayout android:id="@+id/appBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"> <ImageView android:id="@+id/background" android:layout_width="match_parent" android:layout_height="256dp" android:scaleType="centerCrop" android:fitsSystemWindows="true" app:layout_collapseMode="parallax" android:src="@drawable/placeholder"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:contentScrim="?attr/colorPrimary" android:fitsSystemWindows="true" app:titleTextColor="@color/main_color_white" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" app:tabIndicatorColor="@color/colorAccent" app:tabSelectedTextColor="@color/colorAccent" app:tabTextColor="@android:color/white" app:tabIndicatorHeight="4dp" app:tabMode="fixed"/> </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.CoordinatorLayout>
Es posible que desee cambiar el comportamiento de la barra de herramientas. Puede proporcionar el comportamiento de desplazamiento cambiando layout_scrollFlags.
app:layout_scrollFlags="scroll|enterAlways"
Quite el pin
y haga este cambio en su barra de herramientas y funcionaría!
- Añadir
android:fitsSystemWindows="true"
enCoordinatorLayout
. - Eliminar la
app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
de laToolbar
deToolbar
. -
Mover
TabLayout
dentro deCollapsingToolbarLayout
.<android.support.design.widget.AppBarLayout android:id="@+id/appbarlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:minHeight="@dimen/actionBarHeight" app:contentScrim="@color/colorPrimary" app:expandedTitleTextAppearance="@style/TransparentText" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/toolbar_image" android:layout_width="match_parent" android:layout_height="180dp" android:adjustViewBounds="true" android:background="#229944" android:contentDescription="@null" android:scaleType="fitCenter"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/actionBarHeight" android:minHeight="@dimen/actionBarHeight" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_gravity="bottom" app:layout_scrollFlags="scroll" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
Para CollapsingToolbarLayout
use banderas de desplazamiento:
app:layout_scrollFlags="scroll|enterAllwaysCollapsed"
Esta combinación de indicadores desaparecerá de la barra de herramientas mientras se desplaza hacia abajo. Y CollapsingToolbarLayout
se expandirá completamente cuando se desplace a la parte superior de la lista.
Y no hay necesidad de eliminar la app:layout_collapseMode="pin"
de la Toolbar
de Toolbar
, porque los flags de collapseMode
son para definir el comportamiento y la colocación de las vistas dentro de CollapsingToolbarLayout
y no afectará el colapso real y la expansión de CollapsingToolbarLayout
.