简体   繁体   中英

Android app toolbar not hiding in scroll

Here is what I tried, the frame layout is fragment.. and that fragment displays a list on screen. when scrolling that list i want toolbar to hide... the code below is not working, what am i doing wrong. i am trying to follow tutorials

            <?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"
             android:id="@+id/main_content"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:fitsSystemWindows="true">
                <android.support.v4.widget.DrawerLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/drawer_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true" >
                 <LinearLayout
                 android:layout_width="match_parent"
                  android:layout_height="match_parent"
                android:orientation="vertical" >
                   <android.support.design.widget.AppBarLayout
                       android:id="@+id/appbar"
                     android:layout_width="match_parent"
    android:layout_height="wrap_content"
                    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">
        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
             app:layout_scrollFlags="scroll|enterAlways"
            android:background="@color/purple2"
            android:minHeight="56dp"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"                 
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:titleTextAppearance="@style/ToolbarTitle" >
        </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/line1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:orientation="vertical" >
            <ListView
                android:id="@+id/list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:divider="@null"
                android:dividerHeight="0dp" />
        < /LinearLayout>       
       </android.support.v4.widget.DrawerLayout>
   </android.support.design.widget.CoordinatorLayout>

You are missing the indicator of what is the scroll to follow.

Add app:layout_behavior="@string/appbar_scrolling_view_behavior" to your ListView and everything should work.

* EDIT *

Upon further investigation I've discovered that basically the problem is the ListView. It doesn't implement NestedScrollingChild and hence the scrolling behaviour will not work.

The best you can do is transform that ListView into a RecyclerView with a LinearLayoutManager (which basically will look the same).

Other option is to add in Java code:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { listView.setNestedScrollingEnabled(true); }

but of course it will only work on Lollipop.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM