RecyclerView:AppBarLayout向上滚动时填充屏幕高度(隐藏)

时间:2017-02-11 07:05:26

标签: android android-recyclerview android-animation android-appbarlayout

我有带工具栏和2个按钮的AppBarLayout。它在我滚动RecyclerView时隐藏,并在我向下滚动时显示。 问题是,当AppBarLayout隐藏并且我在图片上显示条件时,RecyclerView被设置为低于AppBarLayout并保留其位置。我还需要我的RecyclerView向上滚动到状态栏,并在向下滚动时返回到原始位置。到目前为止,我甚至找不到一个例子。 谢谢。 enter image description here

这是mt布局:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ru.skyeng.listening.AudioFiles.AudioListActivity">

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

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
 >

        <ImageButton
            android:id="@+id/action_settings"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/gear"
            android:layout_marginEnd="16dp"
            android:layout_marginRight="16dp"
            android:layout_gravity="end"/>
        </android.support.v7.widget.Toolbar>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button_category"
            android:layout_width="158dp"
            android:layout_height="36dp"
            android:layout_margin="16dp"
            android:background="@drawable/selector_button_category"
            android:text="@string/categories"
            android:textColor="@color/colorBlue2"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"/>

        <Button
            android:id="@+id/button_length"
            android:layout_width="158dp"
            android:layout_height="36dp"
            android:layout_margin="16dp"
            android:background="@drawable/selector_button_length"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:text="@string/length"
            android:textColor="@color/colorBlue2"/>

        <View
            android:id="@+id/shadow"
            android:layout_below="@+id/button_length"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:background="@drawable/shadow">
        </View>
    </RelativeLayout>


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


<FrameLayout
    android:layout_below="@+id/appBarLayout"
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="24dp">
</FrameLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

如果您想要在工具栏下方显示图像。你应该尝试CollpsingLayoutToolbar。

这是一个例子。我希望这有帮助

  <android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:elevation="0dp">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:collapsedTitleGravity="left"
        app:expandedTitleGravity="bottom|right"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleTextAppearance="@style/CollapsedAppBarStyle"
        app:layout_scrollFlags="scroll"
        app:title="@string/pod">

        <ImageView
            android:id="@+id/collapsing_ImageView"
            android:layout_width="match_parent"
            android:layout_height="256dp"
            android:contentDescription="@string/app_name"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            android:src="@drawable/bg_image"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:minHeight="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

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