hackware1993/MagicIndicator

ViewPagerHelper.bind(magicIndicator, mViewPager); 不支持传ViewPager2 ?

xuleijvbw opened this issue · 1 comments

ViewPagerHelper.bind(magicIndicator, mViewPager); 不支持传ViewPager2 ?

好像不支持,自己做个简单的移植就可以了

import androidx.viewpager2.widget.ViewPager2
import net.lucode.hackware.magicindicator.MagicIndicator

/**
 * 新版页卡的绑定辅助工具,移植自 [net.lucode.hackware.magicindicator.ViewPagerHelper]。
 *
 * @author Reinhard
 * @date 2022/3/25
 */
class ViewPager2Helper {
    companion object {
        fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) {
            viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
                override fun onPageScrolled(
                    position: Int,
                    positionOffset: Float,
                    positionOffsetPixels: Int
                ) {
                    magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels)
                }

                override fun onPageSelected(position: Int) {
                    magicIndicator.onPageSelected(position)
                }

                override fun onPageScrollStateChanged(state: Int) {
                    magicIndicator.onPageScrollStateChanged(state)
                }
            })
        }
    }
}