ViewPager2 PageChangeListener is not working like normal ViewPager.?
Go to app > Gradle Scripts > build. gradle (Module: app) and then write the following dependency ” implementation 'androidx. viewpager2:viewpager2:1.0. 0' ” into dependencies section as shown below and then click on Sync now.
You can easily do that by creating a custom class inherits from viewPager and override two methods: “onTouchEvent()” and “onInterceptTouchEvent()” and return true or false to disable and enable the swiping on certain touch events i.e say swiping.
There is registerOnPageChangeCallback method for that:
pager.registerOnPageChangeCallback(object: ViewPager2.OnPageChangeCallback() {
            override fun onPageScrolled(
                position: Int,
                positionOffset: Float,
                positionOffsetPixels: Int
            ) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels)
            }
            override fun onPageSelected(position: Int) {
                super.onPageSelected(position)
            }
            override fun onPageScrollStateChanged(state: Int) {
                super.onPageScrollStateChanged(state)
            }
        })
Below is the sample code for OnPageChangeListener in ViewPager2.
class ViewPager2PageChangeCallback(private val listener: (Int) -> Unit) : ViewPager2.OnPageChangeCallback() {
    override fun onPageSelected(position: Int) {
            super.onPageSelected(position)
            when (position) {
               //YOUR CODE
            }
        }
    }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With