滚动视图中的 Recyclerview

Recyclerview in scrollview

这是代码:

    <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/grey_f2"
    android:fillViewport="true"
    >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rv_achievement_badges"
        android:focusableInTouchMode="false"

        />
    <LinearLayout
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="25dp"
        >
        <com.sharesmile.share.views.LBTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hall_of_fame"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:textColor="@color/black_64"
            android:textSize="20sp"
            />
        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rv_hall_of_fame"
            android:focusableInTouchMode="false"
            />
    </LinearLayout>
</LinearLayout>
</ScrollView>

问题是 rv_hall_of_fame 没有显示所有项目。 尝试了 nestedsrollview、viewport、canScrollVertically 和 setNestedScrollingEnabled,但没有任何效果。可以告诉我吗

RecyclerViewListView 放在 ScrollView 中是不明智的。 Android 不知道如何处理用户事件。此外,在您的情况下,根 ScrollView 中有两个 RecyclerView...对于 Android UI 框架和用户来说都是疯狂的。

一种解决方案可能是只使用一个 RecyclerView 来处理滚动用户操作,以及一个 Adapter 知道如何呈现您使用的所有内容:成就徽章、名人堂标签、和球员。所以,您只需要一个 RecyclerView,它会非常有效。

您应该从线性布局中删除第二个 recyclerview。也许这就是您看不到所有项目的原因。

编辑:

我认为你应该使用 NestedScrollView。我在我的一个项目中遇到了同样的问题,我将我的代码更改为以下解决了我的问题。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey_f2"
android:fillViewport="true"
android:focusableInTouchMode="true">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

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

<com.sharesmile.share.views.LBTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hall_of_fame"
android:layout_marginTop="10dp"
android:textColor="@color/black_64"
android:textSize="20sp"
android:background="@color/white"
android:paddingLeft="25dp"
android:paddingTop="36dp"/>

<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rv_hall_of_fame"
android:background="@color/white"
android:layout_marginBottom="7dp"
android:paddingBottom="30dp"
android:paddingTop="30dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"/>

</LinearLayout>

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