我有两个RecyclerViews
我想要一起垂直滚动。其中一个也必须能够水平滚动。我为实现这一点所做的是把它们放在ScrollViews
中。为了获得理想的效果,我禁用了nestedScrollingEnabled
。它们非常顺利地滚动在一起,但我现在有一个不同的问题:RecyclerViews
一次加载所有视图,而不是回收视图,这对UI造成严重影响。我每次想要显示我的RV或更改其中的数据集时,都会看到超过100帧的帧跳过。我怎样才能更好地接近这个?
这是XML。请不要介意宽度和高度值,因为这些是以编程方式设置的。
<ScrollView
android:id="@+id/verticalScrollView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/headerConstraintLayout"
app:layout_constraintVertical_bias="1.0">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/first_recyclerview"
android:layout_width="100dp"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent" />
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="40dp"
android:layout_height="0dp"
android:layout_marginLeft="100dp"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
<include
layout="@layout/second_recyclerview"
android:layout_width="100dp"
android:layout_height="wrap_content" />
</HorizontalScrollView>
</android.support.constraint.ConstraintLayout>
</ScrollView>
答案 0 :(得分:0)
我最终完全摆脱了垂直ScrollView
,并使用scrollBy
来实现同步滚动。 RecyclerViews
现在正确地进行回收,问题已解决!