在Collapsing工具栏布局上将RecyclerView固定在更高的位置

Ism*_*bal 15 android material-design android-recyclerview android-coordinatorlayout android-collapsingtoolbarlayout

是否可以将RecyclerView锚定到比通常位置稍高的位置,就像大多数可折叠视图上的FAB图标一样(预期结果见图1).

预期结果

图片1

我尝试了以下代码但它没有给出预期的结果(参见图2了解当前结果)

<android.support.design.widget.CoordinatorLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:fitsSystemWindows="true"
    app:expanded="true">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleTextAppearance="@android:color/transparent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/bannerImage"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax"
            android:src="@drawable/starter_screen_bg"/>

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

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

    <android.support.v7.widget.RecyclerView
        android:id="@+id/categories"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:gravity="center"
        >
    </android.support.v7.widget.RecyclerView>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

目前的结果

图2

添加app:layout_behavior="@string/appbar_scrolling_view_behavior"将回收器视图附加到可折叠视图,然后忽略添加边距底部.

但是删除它会产生预期的结果,但是滚动视图不会按预期运行(没有视差效果),并且在背景图像滚动后滚动.

因此可以像第一张图像一样实现可折叠视图.

rom*_*4ek 14

这实际上很容易实现 - behavior_overlapTop每个视图都有一个属性app:layout_behavior="@string/appbar_scrolling_view_behavior".所以你需要做的就是将这个属性设置为RecyclerView:

<android.support.v7.widget.RecyclerView
    android:id="@+id/categories"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    app:behavior_overlapTop="64dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:gravity="center"/>
Run Code Online (Sandbox Code Playgroud)

  • 但我的意思是为什么?这取决于作者的用例,所以只是一个例子. (3认同)