with layout_collapsemode collapsing appbarlayout android android-recyclerview android-coordinatorlayout android-collapsingtoolbar

android - collapsing - layout_collapsemode



Cómo colocar RecyclerView debajo de CollapsingToolbarLayout y responder a la barra de herramientas cuando se colapsó en Android (1)

No sé si ya lo has arreglado. Sin embargo, te estás perdiendo

app:layout_behavior="@string/appbar_scrolling_view_behavior"

en tu RecyclerView.

Pruebe de esta manera:

<android.support.v7.widget.RecyclerView android:id="@+id/dc_rv_destination" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

Estoy desarrollando una aplicación de Android. En mi aplicación estoy usando, CollapsingtoolbarLayout junto con RecyclerView. Ambos están trabajando. Pero estoy teniendo un problema para ubicarlos. Lo que quiero es que quiero RecyclerView directamente debajo de Collapsing Toobar y quiero que RecyclerView suba junto con la barra de herramientas cuando se contrae. Pero mi código no está funcionando como esperaba.

Esto es lo que está sucediendo ahora.

Como puede ver, la vista de reciclador tiene una posición fija cubierta con la barra de herramientas. No responde a la barra de herramientas contraída.

Este es mi diseño 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:fitsSystemWindows="true" tools:context=".MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/dc_rv_destination" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.design.widget.AppBarLayout android:id="@+id/htab_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/htab_collapse_toolbar" android:layout_width="match_parent" android:layout_height="@dimen/main_activity_parallax_initial_height" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/htab_header" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/apple" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax" /> <TextView android:layout_centerInParent="true" android:text="HELLO" android:textSize="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/main_activity_toolbar_height" android:gravity="top" android:minHeight="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:titleMarginTop="13dp" /> <!-- <android.support.design.widget.TabLayout android:id="@+id/htab_tabs" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_gravity="bottom" app:tabIndicatorColor="@android:color/white" />--> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout>

En actividad, no configuré nada excepto inicializar RecyclerView y establecer datos en él.

Así es como configuro RecyclerView en actividad

private void setDestinationRecyclerView() { RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getBaseContext()); rcDestinations.setLayoutManager(mLayoutManager); rcDestinations.setItemAnimator(new DefaultItemAnimator()); regionsList = new ArrayList<Region>(); destinationsAdapter = new DestinationsAdapter(regionsList,getBaseContext()); rcDestinations.setAdapter(destinationsAdapter); //add items and notify data changed }

Entonces, ¿qué está mal o falta con mi código? ¿Cómo puedo hacer que RecyclerView responda a CollapsingToolbarLayout cuando está contraído? Por favor, ayúdame.