多个RecyclerViews上面有内容

时间:2017-07-17 18:32:07

标签: android android-recyclerview

我想用多个像这样的RecyclerViews进行布局

<ScrollView
<LinearLayout << content here
<android.support.v7.widget.RecyclerView
<LinearLayout << content here
<android.support.v7.widget.RecyclerView
<LinearLayout << content here
<android.support.v7.widget.RecyclerView
</ScrollView>

但这个布局中的问题是RecyclerView不是回收​​项,因为它在滚动视图里面,我的问题是其他应用程序如何实现多个垂直列表的这种效果? 如何滚动内容? 我能做什么选择?

  

注意:RecyclerViews将具有不同的LayoutMnager

3 个答案:

答案 0 :(得分:0)

您可以使用NestedScrollView。不要使用scrollview ..也请“recyclerView.setNestedScrollingEnabled(false)”。它将解决您的问题

答案 1 :(得分:0)

如果所有的recyclerviews都垂直滚动,您可以使用不同跨度计数的 GridLayoutManager (请参阅link)和一个具有不同视图类型的Recyclerview(请参阅link

答案 2 :(得分:0)

这里的诀窍是创建一个托管其他回收站视图的“母亲”RecyclerView。让你这样的项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/your_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/item_rv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

然后制作一个合适的ViewHolder:

public static class ViewHolder extends RecyclerView.ViewHolder {
    private TextView textView;
    private RecyclerView recyclerView;

    public ViewHolder(View itemView) {
        super(itemView);
        textView = (TextView) itemView.findViewById(R.id.your_content);
        recyclerView = (RecyclerView) itemView.findViewById(R.id.item_rv);
    }
}

现在,在绑定时设置RecylerView:

public void onBindViewHolder(ViewHolder viewHolder, int i) {
    viewHolder.textView.setText("This is content " + i);
    viewHolder.recyclerView.setLayoutManager(new GridLayoutManager(activity, 2, LinearLayoutManager.HORIZONTAL, false));
    viewHolder.recyclerView.setAdapter(new MyAdapter());
}