如何在单个活动中使用两个recyclerView?

时间:2017-06-15 17:49:24

标签: android android-layout android-recyclerview

我想在单个活动中实现两个具有不同布局的RecyclerView。上面的RecyclerView应该垂直滚动,下面的那个应该水平滚动。但是当我运行应用程序时,只显示一个RecyclerView。如果显示第一个视图,则它可以正常工作并垂直滚动,而第二个RecyclerView丢失。如果显示第二个,那么当它应该进行水平滚动并且缺少第一个RecyclerView时它会垂直滚动。

Here is what i want.来源:Github,CardView-Recyclerview-Picasso

这是我的布局

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorBackgroundLight"
    android:smoothScrollbar="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/CategoriesRecyclerView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/videoRecyclerView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="130dp"
            android:layout_below="@+id/CategoriesRecyclerView"/>

    </RelativeLayout>

</android.support.v4.widget.NestedScrollView>

2 个答案:

答案 0 :(得分:0)

您可以直接使用没有NestedScrollView的2 Recycler Views。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/CategoriesRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/videoRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="130dp"
            android:layout_below="@+id/CategoriesRecyclerView"/>

    </RelativeLayout>

在您的CategoriesRecyclerView中,其高度为wrap_content,请在用于recyler视图的布局管理器上使用setAutoMeasureEnabled(true)

答案 1 :(得分:0)

如果要在页面滚动时滚动水平滚动视图完整的上部然后使用scrollview,否则您可以不使用scrollview。另外,为了实现您的布局,只需给出水平Recyclerview固定高度,然后您就可以看到两个recyclerview。