wasimsandhu
wasimsandhu

Reputation: 4555

Toolbar not hiding on RecyclerView scroll

I'm trying to make the Toolbar in my app hide and show based on the RecyclerView's scrolling. This gif shows what I'm trying to achieve.

GIF

I'm following this tutorial and not getting the results I'm looking for. Here is my activity's layout:

<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/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:fitsSystemWindows="true">

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="7dp">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/toolbar" />

</android.support.design.widget.AppBarLayout>

<FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF" />

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/header"
    app:menu="@menu/drawer" />

</android.support.design.widget.CoordinatorLayout>

And here's the Toolbar layout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/ColorPrimary"
    app:layout_scrollFlags="scroll|enterAlways" />

When I run this code, the Toolbar completely disappears. What's wrong?

Upvotes: 7

Views: 2483

Answers (3)

blay
blay

Reputation: 464

You need to do 2 actions:

  1. remove from toolbar xml this line:

    app:layout_scrollFlags="scroll|enterAlways"

  2. As other answers, add this line to layout that wrap your fragment's (in your case it's frame layout)

    app:layout_behavior="@string/appbar_scrolling_view_behavior"

Upvotes: 0

hadilq
hadilq

Reputation: 1033

As @orrett3 described just add this line

 app:layout_behavior="@string/appbar_scrolling_view_behavior"

to your container FrameLayout like this

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

I assumed the RecyclerView is a child of this container.

Upvotes: 0

orrett3
orrett3

Reputation: 1038

If your RecyclerView is inside of a fragment try putting the following code in the root view of the fragment layout: app:layout_behavior="@string/appbar_scrolling_view_behavior". The view that contains that must be a direct child of the CoordinatorLayout

Upvotes: 2

Related Questions