RecyclerView与Scrollable CardView

时间:2015-03-11 13:35:37

标签: android scrollview android-recyclerview android-cardview

我想做什么


我的RecyclerView内有CardViewRecycleView.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>

{{1}}

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

如何让我的ScrollView在RecyclerView中滚动?有人能给我看魔法吗?

1 个答案:

答案 0 :(得分:2)

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

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

现在它非常流畅。我从here获得了这个。