Я имею дело с таким количеством элементов списка в моем проекте. Для отображения значений в списке я использую представление переработчика. Чтобы избежать загрузки нескольких данных в режиме рециркуляции, я использую технику разбиения на страницы, которая является ничем иным, как бесконечной прокруткой. В этом методе я сначала загружу 10 элементов на экране, когда пользователь начинает прокручивать страницу вниз, я вызову обращение к фоновой службе и получу другие 10 элементов, и я буду повторять этот процесс до тех пор, пока данные полностью не отобразятся, что работает отлично. Проблема заключается в том, что наряду с этим видом рециркулятора я использую пролистывание для обновления макета sh в моем макете. После пролистывания, чтобы обновить мою страницу, перезапускается просмотр слушателя прокрутки, потому что из-за этого я не могу загрузить более 10 элементов после обновления должной прокрутки. Пожалуйста, найдите мои детали макета ниже
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/edu_zone_linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/edu_zone_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_to_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/add_subject_layout">
<include
layout="@layout/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/add_subject_layout" />
</android.support.v4.widget.SwipeRefreshLayout>
<include
android:id="@+id/no_video_layout"
layout="@layout/no_video_layout"
android:visibility="gone" />
<ProgressBar
android:id="@+id/progress_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone" />
<LinearLayout
android:id="@+id/add_subject_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:background="@drawable/home_screen_app_bar_bg"
android:gravity="center"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/add_subject_image"
android:layout_width="30dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_plus_button" />
<TextView
android:id="@+id/add_subject_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:text="Add video"
android:textSize="16sp" />
</LinearLayout>
</RelativeLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/activity_horizontal_margin"
android:backgroundTint="@color/colorWhite"
android:scaleType="center"
android:visibility="gone"
android:src="@drawable/ic_add_video"
app:maxImageSize="50dp"/>
mRecyclerView.addOnScrollListener(new PaginationScrollListener(layoutManager) {
@Override
protected void loadMoreItems() {
isLoading = true;
currentPage = currentPage + 1;
videoPresenter.videoListOfTopic(sTopicId, documentTypeId, studentId, currentPage, Status.PAGINATION_SIZE);
}
@Override
public int getTotalPageCount() {
return TOTAL_PAGES;
}
@Override
public boolean isLastPage() {
return isLastPage;
}
@Override
public boolean isLoading() {
return isLoading;
}
});
mRecyclerView.setNestedScrollingEnabled(false);
mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(layoutManager);