How to save each position of the viewing page in the list of them?

I have a list of viewers with UnderlinePageIndicator in RecyclerView, about 30 in one snippet. I want to save the page position of each pager in the mFlat object and extract it from mFlat every time the pager is updated with

flatViewHolder.pager.setCurrentItem(mFlat.get(RecyclerViewPosition).getCur_pos());

So, when I try to save the current page of the first pager, this is normal. But after scrolling down the page, every pager seems to get that page number - this is wrong. I want to save every pager page number. Here is my viewpager addOnPageChangeListener

flatViewHolder.pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int pos, float positionOffset, int positionOffsetPixels) {
            }
            @Override
            public void onPageSelected(int pos) {
                // save current page pos in mFlat object
                mFlat.get(position).setCur_pos(pos);
            }
            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });

and it works every time on different viewers when scrolling the page

@Override
                public void onPageSelected(int pos) {
                    // save current page pos in mFlat object
                    mFlat.get(position).setCur_pos(pos);
                }
+4
2

, , addOnPageChangeListener:

viewHolder.pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {[...]}

, . , position , .

, , , setOnPageChangeListener. , API. set add , , . , .

. , , .

+3

onPageScrolled, :

   @Override
   public void onPageScrolled(int pos, float positionOffset, int positionOffsetPixels) {

         // Update reference for page scroll too
         mFlat.get(position).setCur_pos(pos);
    }

, , , , .

+2

Source: https://habr.com/ru/post/1616424/


All Articles