Страница списка RecyclerView бесконечная прокрутка не работает, когда помещается в NestedScrollView - PullRequest
1 голос
/ 24 июня 2019

Я взял два окна повторного просмотра, так как мне нужно показать два списка, в которых один горизонтальный список, а другой вертикальный с бесконечной прокруткой, для прокрутки обоих списков я добавил их в nestedScrollView, но бесконечная прокрутка вертикального списка не работает , есть логика разбиения на страницы после первой загрузки элементов, когда я прокручиваю вниз, затем вызывается api, а затем загружает элементы в списке

<android.support.v4.widget.NestedScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">


        <LinearLayout
            android:id="@+id/llRecentlyBought"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:orientation="vertical"
            android:visibility="gone"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <TextView
                android:id="@+id/txtVRecentlyBought"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/bg_grey_color"
                android:padding="10dp"
                android:text="@string/recently_bought"
                android:textSize="@dimen/font_s_ize_levelone_signup" />

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerRecentlyBought"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:nestedScrollingEnabled="false"
                android:paddingStart="@dimen/padding_home_1"
                android:paddingEnd="@dimen/padding_home_1"
                android:scrollbars="none"
                android:focusable="false"
                android:focusableInTouchMode="true"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

            </LinearLayout>


            <android.support.v7.widget.RecyclerView
                android:id="@+id/products_in_gridView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/llRecentlyBought"
                android:layout_alignParentStart="true"
                android:layout_gravity="top"
                android:layout_marginTop="5dp"
                android:background="@android:color/white"
                android:descendantFocusability="blocksDescendants"
                android:fadingEdge="none"
                android:paddingStart="@dimen/padding_home_1"
                android:paddingEnd="@dimen/padding_home_1"
                android:paddingBottom="@dimen/padding_home_1"
                android:scrollbars="none"
                android:focusable="false"
                android:focusableInTouchMode="true"    
                app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

           </RelativeLayout>

    </android.support.v4.widget.NestedScrollView>







BaseAttacher mBaseAttacher = Mugen.with(productsInGridRecyclerView, new MugenCallbacks() {
            @Override
            public void onLoadMore() {
                if (indexOfCurrentPage < TOTAL_PAGE_AVAILABLE) {
                    indexOfCurrentPage += 1;
                    // loadNextPage(indexOfCurrentPage);


                    if (isLastPage == false) {
                        loadNextPage(indexOfCurrentPage);
                    } else if (isLastPage == true) {
                        //   Toast.makeText(getActivity(), "No more products", Toast.LENGTH_SHORT).show();
                        Toast.makeText(getActivity(), getResources().getString(R.string.txt_no_product_found), Toast.LENGTH_SHORT).show();
                    }

                }
            }

            @Override
            public boolean isLoading() {
                return isLoading;
            }

            @Override
            public boolean hasLoadedAllItems() {
                return false;
            }
        }).

                start();
        mBaseAttacher.setLoadMoreEnabled(true);
        mBaseAttacher.setLoadMoreOffset(2);

выше - это список baseattacher to вертикальный список, который не вызывается при прокрутке вниз, без nestedscrollview, его работа помогает мне с бесконечной прокруткой списка в nestedscrollview

используемая библиотека https://github.com/vinaysshenoy/mugen

1 Ответ

0 голосов
/ 26 июня 2019

нет необходимости в nestedscrollview я только что добавил app: layout_behavior = "@ string / appbar_scrolling_view_behavior" в родительский макет это работает !!

...