0

Which statement should i put in "Recyclerview_position_is_bottem" to satisfy condition that now recyclerview position is bottem to execute function

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                    super.onScrolled(recyclerView, dx, dy);
                    if (Recyclerview_position_is_bottem){
                        isScrolled=0;
                        skip = skip + 5;
                                remove = 1;
                                feedItems.add(null);
                                eventsRecyclerView.notifyItemInserted(feedItems.size());
                                handler.postDelayed(new Runnable() {
                                    @Override
                                    public void run() {
                                        Loadmore(eventsRecyclerView,1);

                                    }
                                }, 500);


                        }

                }


            });
Amar Yadav
  • 170
  • 11

2 Answers2

1

first / last visible child depends on the LayoutManager. If you are using LinearLayoutManager or GridLayoutManager, you can use

int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();

For example:

GridLayoutManager layoutManager = ((GridLayoutManager)mRecyclerView.getLayoutManager());
int firstVisiblePosition = layoutManager.findLastCompletelyVisibleItemPosition();

For LinearLayoutManager, first/last depends on the adapter ordering. Don't query children from RecyclerView; LayoutManager may be prefered to layout more items than visible for caching.

Uniruddh
  • 4,427
  • 3
  • 52
  • 86
1

You can use LayoutManager's object which you set on your recyclerView like this:

      recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

            super.onScrolled(recyclerView, dx, dy);
            int totalItems = layoutManager.getItemCount();
            int lastVisibleItem = layoutManager.findLastVisibleItemPosition();
                if (totalItems - 1 == lastVisibleItem){
                    isScrolled=0;
                    skip = skip + 5;
                            remove = 1;
                            feedItems.add(null);
                            eventsRecyclerView.notifyItemInserted(feedItems.size());
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    Loadmore(eventsRecyclerView,1);

                                }
                            }, 500);
                    }
            }
        });
Er.Rohit Sharma
  • 696
  • 5
  • 21