卡顿的根本原因其实两个控件的滑动冲突,解决方案:屏蔽RecyclerView的滚动,只依靠ScrollView的滚动,就能提升滑动时候的卡顿:
rvTrainComposition.setLayoutManager(new LinearLayoutManager(mActivity){
@Override
public boolean canScrollVertically() {
return false;
}
});
还有布局的方式改掉这个问题,添加fillViewport属性:android:fillViewport="true"
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView_message"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="32dp"
android:background="@color/white"
android:nestedScrollingEnabled="true"
android:paddingStart="16dp"
android:paddingEnd="19dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</ScrollView>