tinkoff-mobile-tech / ScrollingPagerIndicator

Pager indicator inspired by Instagram. Lightweight and easy to set up.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ViewPager2.registerOnPageChangeCallback()

MichalKubiako opened this issue · comments

I connected ScrollingPagerIndicator with ViewPager2:


            adapter = Adapter(it)
            adapter.list = list
            viewPager2.adapter = adapter
            indicator.attachToPager(viewPager)

and then I've added:

viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback(){
            override fun onPageSelected(position: Int) {
                updatePosition(position)
                super.onPageSelected(position)
            }
        })

With running the app I have below error:

 java.lang.IllegalStateException: Adding and removing callbacks during dispatch to callbacks is not supported
        at androidx.viewpager2.widget.CompositeOnPageChangeCallback.throwCallbackListModifiedWhileInUse(CompositeOnPageChangeCallback.java:95)
        at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageSelected(CompositeOnPageChangeCallback.java:76)
        at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageSelected(CompositeOnPageChangeCallback.java:73)
        at androidx.viewpager2.widget.ScrollEventAdapter.dispatchSelected(ScrollEventAdapter.java:432)
        at androidx.viewpager2.widget.ScrollEventAdapter.onScrolled(ScrollEventAdapter.java:197)
        at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled(RecyclerView.java:5173)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:4231)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3862)
        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
        at android.view.View.layout(View.java:22844)

Any thoughts on how to solve it? (I still want to use VP2)