如何在listview的滚动上隐藏工具栏?

时间:2016-03-14 07:20:10

标签: android toolbar android-collapsingtoolbarlayout

这是我的布局xml代码

我已经有listview滚动侦听器的回调但是如果我正在做

  collapsingToolbarLayout.setVisibility(View.GONE);

简单地隐藏工具栏代替滚动效果,但我想滚动效果请帮助。

<android.support.design.widget.AppBarLayout
    android:id="@+id/id_toolbar_container"
    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"
        android:visibility="gone"
        app:layout_collapseMode="pin"
        app:layout_scrollFlags="scroll|exitUntilCollapsed" />
</android.support.design.widget.AppBarLayout>

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/id_toolbar_container">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/id_appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp">

        //This is the toolbar which i want to hide on scroll of listview
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="enterAlwaysCollapsed">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white">

                <android.support.design.widget.TabLayout
                    android:id="@+id/tabs"
                    android:layout_width="wrap_content"
                    android:layout_height="?attr/actionBarSize"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="5dp"
                    app:tabMinWidth="75dp"
                    app:tabIndicatorColor="@color/deep_blue"
                    app:tabSelectedTextColor="@color/background"
                    app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
                    app:tabTextColor="@color/myGrey" />

            </RelativeLayout>
        </android.support.design.widget.CollapsingToolbarLayout>

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

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

1 个答案:

答案 0 :(得分:4)

滚动行为依赖于支持嵌套滚动的视图,这是在视图树上传播滚动事件所必需的。

在api-21中添加了setNestedScrollingEnabled()方法。为了让折叠工具栏在api-21及更高版本上运行,请在ListView上调用它:

myListView.setNestedScrollingEnabled(true);

为了让它在较低的api级别上工作,您需要将ListView转换为支持嵌套向下滚动到api-7的RecyclerView,因为它来自v7支持库。

有关使用RecyclerView的完整示例,请参阅here