OnScrollchange listner не вызывается после refre sh? - PullRequest
0 голосов
/ 14 января 2020

Я имею дело с таким количеством элементов списка в моем проекте. Для отображения значений в списке я использую представление переработчика. Чтобы избежать загрузки нескольких данных в режиме рециркуляции, я использую технику разбиения на страницы, которая является ничем иным, как бесконечной прокруткой. В этом методе я сначала загружу 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);
...