1片段布局上的Android Multiple RecyclerView(水平和垂直)

时间:2017-01-09 05:10:28

标签: android android-layout listview android-recyclerview

我想在一个页面布局上使用几个 RecyclerView

我需要这个清单:

方法1:

<ScrollView>
    <ViewPager></ViewPager> <!-- horizontal image slider 10 item -->
    <RecyclerView></RecyclerView> <!-- horizontal -->
    <RecyclerView></RecyclerView> <!-- gridview -->
    <RecyclerView></RecyclerView> <!-- horizontal -->
    <RecyclerView></RecyclerView> <!-- horizontal -->
    <RecyclerView></RecyclerView> <!-- gridview -->
    <RecyclerView></RecyclerView> <!-- horizontal -->
</ScrollView>

方法2:

<Relativelayout>
    <RecyclerView>
        <!-- viewtype for ViewPager horizontal image slider 10 item -->
        <!-- viewtype for horizontal  -->
        <!-- viewtype for gridview -->
        <!-- viewtype for horizontal  -->
        <!-- viewtype for horizontal  -->
        <!-- viewtype for gridview -->
        <!-- viewtype for horizontal  -->
    </RecyclerView>
</Relativelayout>

为此,我找到了两种方法:

  • 一个RecyclerView - &gt;使用ItemViewType
  • 将所有recycleview添加到一个ScrollView

哪种方法正确?

这些方法都存在问题,我找不到方法。

的问题:

  • 使用<ScrollView>方法:在滚动到下方之前将所有图像从屏幕中拉出来。 (但滚动快速而流畅)
  • 使用一个循环视图(多项目视图类型)非常嵌套,滚动不流畅且快速且是lagy。

Google Play应用中的列表设计如何? (嵌套且流畅)

谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

参考此代码:

      <android.support.v4.widget.NestedScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:scrollbars="vertical">
          <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="vertical">
            <android.support.v7.widget.RecyclerView
             android:id="@+id/recylerView1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content">
            </android.support.v7.widget.RecyclerView>

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

        </android.support.v7.widget.RecyclerView>

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

        </android.support.v7.widget.RecyclerView>

       <!--You can add as many recycler views you want here--> </LinearLayout>
        </android.support.v4.widget.NestedScrollView>

答案 1 :(得分:0)

解决方案发现:

方法2更好。使用一个recycleViewItemViewType。 不要在onBindViewHolder中设置setAdapter(),这会导致滞后。将steAdapter()放在ViewHolder中并平滑滚动。