带有可滚动 CardView 的 RecyclerView

RecyclerView with Scrollable CardView

我想做什么


我有一个 RecyclerView,里面有不同的 CardView。为此,我写了一个 RecycleView.Adapter 和一个 RecyclerView.ViewHolder。效果很好。

现在我想拥有承载 ScrollView 的卡片。我的 Layout 看起来如下:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp">

    <TextView
        android:id="@+id/tv_assignment_comments_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="false"
        android:gravity="left"
        android:text="Kommentare"
        android:textSize="@dimen/abc_text_size_large_material" />


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:layout_below="@id/tv_assignment_comments_title"
        android:fillViewport="true">

        <LinearLayout
            android:id="@+id/ll_comments_card_holder"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" />
    </ScrollView>
</RelativeLayout>

到目前为止一切顺利。显示卡片 但我无法滚动 ScrollView 内的内容,只能滚动 RecyclerView 本身。

如何让我的 ScrollView 在 RecyclerView 中滚动?谁能告诉我魔法吗?

我可以通过在 RecyclerView.ViewHolder 中添加以下内容来解决问题:

mCommentsHolder.mCommentsScrollContainer.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });

现在它运行起来非常流畅。我从 here 那里得到了它。