volver poner mostrar mac instalar herramientas google geogebra descripcion como chrome celular celu barra android android-toolbar android-coordinatorlayout android-collapsingtoolbarlayout

android - poner - Mostrar vista cuando la barra de herramientas se colapsa



google toolbar chrome (1)

Tengo una actividad con CoordinatorLayout , AppBarLayout , CollapsingToolbarLayout y Toolbar . Entonces, básicamente, una vista que se colapsa cuando se desplaza un RecyclerView .

Lo que necesito hacer es mostrar una vista personalizada cuando la vista del diseño expandido está oculta debido al colapso.

Este es mi diseño:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" 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="192dp" 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" app:contentScrim="#2196F3" app:expandedTitleMarginBottom="32dp" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <include android:id="@+id/header" layout="@layout/header_big_first_screen" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax"/> <android.support.v7.widget.CollapsingToolbarLayout android:id="@+id/anim_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Hello!"/> </android.support.v7.widget.CollapsingToolbarLayout> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/categories_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout>

Al final, cuando la barra de herramientas se expande, se muestra la vista cargada con el elemento. Cuando está colapsado no lo hace. Cuando desaparezca, se debe mostrar TextView dentro de la Toolbar . Actualmente se muestra todo el tiempo.

He estado buscando en los eventos de CollapsingToolbarLayout para agregar un oyente cuando cambia de tamaño para poder verificar si es más pequeño que un valor y mostrar esa vista.

Esto puede ser un poco difícil de explicar, pero creo que me aclaré. He estado buscando en Google y no puedo encontrar a nadie tratando de hacer lo mismo.


Echando un vistazo a la fuente CollapsingToolbarLayout , las animaciones de contenido se activan a través de un OnOffsetChangedListener en el AppBarLayout . Así que puedes agregar otra para activar animaciones alfa en tu vista de texto:

mListener = new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if(collapsingToolbar.getHeight() + verticalOffset < 2 * ViewCompat.getMinimumHeight(collapsingToolbar)) { hello.animate().alpha(1).setDuration(600); } else { hello.animate().alpha(0).setDuration(600); } } }; appBar.addOnOffsetChangedListener(mListener);