我的情况很简单。我有一个RecyclerView,里面还有其他几个RecyclerViews。当我尝试滚动内部RecyclerView时,它们不会滚动。
这是为什么?有解决方法吗?
带有根RecyclerView的根XML:
<?xml version="1.0" encoding="utf-8"?>
<com.boxed.v2.ui.category.SortAndFilterView android:id="@+id/sortfilterview"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?actionBarSize"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:elevation="3dp"
app:contentViewId="@+id/content"
app:progressViewId="@+id/progressbar"
app:secondaryViewId="@+id/error">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:layout_marginTop="55dp"
android:paddingTop="10dp"
android:clickable="true"
android:orientation="vertical">
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/bright_teal"
android:text="Sort & Filters"
android:paddingLeft="12dp"
app:fontName="@string/font_sofia_medium"
android:textAllCaps="false"
android:textSize="24sp"
/>
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/recycler_view"
android:background="@color/white"
android:orientation="vertical"
android:layout_margin="10dp"
></android.support.v7.widget.RecyclerView>
</LinearLayout>
</com.boxed.v2.ui.category.SortAndFilterView>
然后,包含嵌套RecyclerView的嵌套项视图(根RecyclerView中的每行之一):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/textlines"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:height="55dp"
android:layout_height="wrap_content"
app:fontName="@string/font_sofia_medium"
android:textAllCaps="false"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:textSize="18sp" />
<LinearLayout
android:id="@+id/collapsable_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/embedded_recycler_view"
android:layout_width="match_parent"
android:layout_height="190dp"
android:background="@drawable/textlines"
></android.support.v7.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
LayoutManager混淆了要滚动的视图, 要使内部RV滚动,请执行此操作。
在顶级RV内创建NestedScrollView
然后在NestedScrollView内放入第二个RV
NB RV = recyvlerView
答案 1 :(得分:0)
要使RecyclerView滚动,必须满足以下两个条件之一:
RecyclerView的高度小于其所有项目
RecyclerView位于滚动父级内部
在这种情况下,Embedded_recycler_view的高度必须小于collapsable_content(您使用match_parent,这是错误的),或者您在collapsable_content内添加了另一个滚动视图,然后添加了Embedded_recycle
然后 将setHasFixedSize设置为true,并为孩子设置setRecycledViewPool