本人在使用BaseQuickAdapter万能适配器进行上拉加载更多数据时,运行时不管我滑动不滑动界面,下拉加载却一直在加载更多数据,没有达到我想要的下拉到最后开始加载更多数据的要求
废话不多说,上布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/homeswipe"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200dp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/home_recyc"
android:layout_below="@+id/banner"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>
</ScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
这里就是我的界面布局,scrollview嵌套轮播图和recyclerview
导致问题的原因:
scrollview嵌套recyclerview进行上拉加载更多数据的时候 会一直走onCreateViewHolder()方法,scrollowview嵌套recyclerview,recyclerview会一次性把所有的数据进行加载 就导致现在的问题
解决方法:
我们可以利用BaseQuickAdapter提供的添加头部 将banner定义到一个新的布局中,这样就可以不使用scrollview了 ,最简单的就是你可以直接将scrollview删除 不过这样会导致界面不太美观