这是代码:
<?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,没有任何工作。你能让我知道吗。
答案 0 :(得分:1)
您应该从linearlayout中删除第二个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>
答案 1 :(得分:0)
将RecyclerView
或ListView
置于ScrollView
内是不明智的。 Android并不知道如何处理用户事件。此外,在您的情况下,您在根RecyclerView
内有两个ScrollView
...对于Android UI框架和用户来说都是疯狂的。
解决方案可能只使用一个处理滚动用户操作的RecyclerView
,以及一个知道如何渲染您使用的所有内容的Adapter
:成就徽章,名人堂标签,以及玩家。所以,你只需要一个RecyclerView
,它就像魅力一样。