我在 ViewPager2 中找不到 PageChangeListener。?

una*_*adi 6 android android-viewpager android-studio android-viewpager2

ViewPager2 PageChangeListener 不像普通的 ViewPager 那样工作。?

小智 17

有一个registerOnPageChangeCallback方法:

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)
            }
        })
Run Code Online (Sandbox Code Playgroud)

  • 我这边只需 5 美分:不要忘记注销监听器 (7认同)

Vir*_*hit 7

下面是 ViewPager2 中 OnPageChangeListener 的示例代码。

class ViewPager2PageChangeCallback(private val listener: (Int) -> Unit) : ViewPager2.OnPageChangeCallback() {
    override fun onPageSelected(position: Int) {
            super.onPageSelected(position)
            when (position) {
               //YOUR CODE
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)