Ocultar barra de herramientas con CoordinatorLayout, pero RecyclerView en un fragmento
Tengo una actividad con dos pestañas. Cada ficha contiene un fragmento con un SwipeRefreshLayout
y un RecyclerView
dentro de ellos.
En la actividad, tengo un CoordinatorLayout
con un AppBarLayout
(con una Toolbar
y un TabLayout
) y un ViewPager
para los fragmentos.
- Mostrar opciones de menú diferentes en la barra de herramientas para la actividad y el fragmento
- Mostrar la información de herramientas debajo de los elementos de ActionBar
- Android - Cambiar el Botón Atrás del Botón de Navegación de ActionBar
- ActionBarDrawerToggle no se puede aplicar a Android.support.v7.widget.Toolbar
- Implementación correcta de SearchView en la barra de herramientas de Android
Captura de pantalla
Ahora, lo que quiero lograr es: cuando el usuario se desplaza en los fragmentos, la barra de herramientas, y no las pestañas, se esconde, como en la Play Store.
En los ejemplos que he leído en Internet, el diseño es muy simple: tienen el RecyclerView
y la Toolbar
dentro del CoordinatorLayout
en el mismo xml.
Entonces, simplemente escriben:
<android.support.v7.widget.RecyclerView android:id="@+id/rvToDoList" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior">
Y
<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <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.support.design.widget.AppBarLayout>
Por lo tanto, no puedo averiguar cómo hacerlo.
Mis xml son los siguientes:
El diseño de la actividad es:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <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.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/color_primary" app:layout_scrollFlags="scroll|enterAlways"/> <android.support.design.widget.TabLayout android:id="@+id/activity_main_tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@color/color_text_primary" app:tabMode="fixed" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/activity_main_tabs_pager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> <ListView android:id="@+id/activity_main_nav_drawer_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/color_primary" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="5dp" android:overScrollMode="never" android:smoothScrollbar="true" /> </android.support.v4.widget.DrawerLayout>
Y los fragmentos son:
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_coupons_swipe_refresh_view" android:layout_width="match_parent" android:layout_height="match_parent"> <com.github.yasevich.endlessrecyclerview.EndlessRecyclerView android:id="@+id/fragment_coupons_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </android.support.v4.widget.SwipeRefreshLayout>
Gracias por adelantado.
- El título de la barra de herramientas desaparece al agregar vistas
- Creación de un botón en la barra de herramientas de Android
- La barra de herramientas no se oculta en RecyclerView
- ¿Cómo puedo colocar un ProgressBar a la derecha de la barra de herramientas?
- Cambiar el color y el estilo de la barra de herramientas en SearchView
- Desapareciendo el título de la barra de herramientas
- ActionMode con barra de herramientas que compensa el contenido
- Android actionLayout no se muestra con la barra de herramientas
Hombre, me enfrenté al mismo problema. El problema no está en el código. Apuesto a que está utilizando versiones antiguas de las herramientas de compilación y las bibliotecas. Actualícelos a la última versión:
- BuildToolsVersion "22.0.1"
- Com.android.support:appcompat-v7:22.1.1
- Com.android.support:recyclerview-v7:22.2.0
En mi caso esto funcionó como un encanto! ¡Buena suerte!
Para todos los que usan Scrollview en un Fragment, como yo, le sugiero que use android.support.v4.widget.NestedScrollView. De esta forma, Barra de herramientas y / o TabLayout se desplazarán junto con Scrollview
- Cómo establecer la variable de acuerdo con los sabores gradle
- Cómo utilizar "Enviar Feeback", FeedbackActivity, en Android?