Android CoordinatorLayout,Listview和固定工具栏

时间:2017-04-20 18:53:49

标签: android toolbar coordinator-layout

我的布局顶部有一个工具栏,后面是两个工具栏大小的条形图,下面是一个列表视图。当有人在列表视图上滚动时,工具栏下的2个条形应向上滚动并在工具栏下消失。

我尝试将app:layout_scrollFlags =“scroll | enterAlways”仅放在那些栏上而不是工具栏上但是它们不响应滚动事件。 如果我也在工具栏上放置相同的scrollFlags,它们都会响应,但我希望工具栏始终显示。 如果我移动工具栏上方的两个条形图,它可以工作,只有两个条形图响应,但现在工具栏位于条形图下方,这不是我想要的显示。

1 个答案:

答案 0 :(得分:0)

尝试将您想要保留的工具栏放在appBar下方的顶部。您的AppBar包含您实际想要滚动的视图,而另一个视图将在其下方。确保您的应用栏高度为0dp,否则它将显示在其上方(或将工具栏的高程更改为高于appbar)。同时将要保留在顶部的栏的高度添加为应用栏的上边距,以便从您查看的下方开始。

<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">    

    <!--Toolbars you want to move-->
    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay"
        android:layout_marginTop="?attr/actionBarSize"
        app:elevation="0dp">

            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@android:color/holo_blue_light"
                android:layout_gravity="bottom"
                app:layout_scrollFlags="scroll|enterAlways"
                />

        <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@android:color/holo_orange_light"
                android:layout_gravity="bottom"
                app:layout_scrollFlags="scroll|enterAlways"
                app:elevation="2dp"
                />

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

    <!--Toolbar you don't want to move-->
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_gravity="top"
        android:background="@color/wallet_bright_foreground_holo_light"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        />

    <!--Your content here -->
    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
        <include layout="@layout/item_list" />
    </FrameLayout>
</android.support.design.widget.CoordinatorLayout>