MagicIndicator
MagicIndicator copied to clipboard
不支持ViewPager2
项目中使用的ViewPager2,可以支持么
fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) {
viewPager.registerOnPageChangeCallback(object : OnPageChangeCallback() {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels)
}
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
magicIndicator.onPageSelected(position)
}
override fun onPageScrollStateChanged(state: Int) {
super.onPageScrollStateChanged(state)
magicIndicator.onPageScrollStateChanged(state)
}
})
}
fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) { viewPager.registerOnPageChangeCallback(object : OnPageChangeCallback() { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { super.onPageScrolled(position, positionOffset, positionOffsetPixels) magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels) } override fun onPageSelected(position: Int) { super.onPageSelected(position) magicIndicator.onPageSelected(position) } override fun onPageScrollStateChanged(state: Int) { super.onPageScrollStateChanged(state) magicIndicator.onPageScrollStateChanged(state) } }) }
指示器会有抖动问题
fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) { viewPager.registerOnPageChangeCallback(object : OnPageChangeCallback() { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { super.onPageScrolled(position, positionOffset, positionOffsetPixels) magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels) } override fun onPageSelected(position: Int) { super.onPageSelected(position) magicIndicator.onPageSelected(position) } override fun onPageScrollStateChanged(state: Int) { super.onPageScrollStateChanged(state) magicIndicator.onPageScrollStateChanged(state) } }) }
指示器会有抖动问题
使用中没遇到过,要不打印一下第一个方法vp传过来的后两个参数?是不是vp有什么问题 vp2本身也是用recyclerview实现的,是不是有什么对他的改动?
fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) { viewPager.registerOnPageChangeCallback(object : OnPageChangeCallback() { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { super.onPageScrolled(position, positionOffset, positionOffsetPixels) magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels) } override fun onPageSelected(position: Int) { super.onPageSelected(position) magicIndicator.onPageSelected(position) } override fun onPageScrollStateChanged(state: Int) { super.onPageScrollStateChanged(state) magicIndicator.onPageScrollStateChanged(state) } }) }
指示器会有抖动问题
使用中没遇到过,要不打印一下第一个方法vp传过来的后两个参数?是不是vp有什么问题 vp2本身也是用recyclerview实现的,是不是有什么对他的改动?
跟踪了一下偏移量,是系统的问题,最后的变化是非线性的
fun bind(magicIndicator: MagicIndicator, viewPager: ViewPager2) { viewPager.registerOnPageChangeCallback(object : OnPageChangeCallback() { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { super.onPageScrolled(position, positionOffset, positionOffsetPixels) magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels) } override fun onPageSelected(position: Int) { super.onPageSelected(position) magicIndicator.onPageSelected(position) } override fun onPageScrollStateChanged(state: Int) { super.onPageScrollStateChanged(state) magicIndicator.onPageScrollStateChanged(state) } }) }
指示器会有抖动问题
使用中没遇到过,要不打印一下第一个方法vp传过来的后两个参数?是不是vp有什么问题 vp2本身也是用recyclerview实现的,是不是有什么对他的改动?
跟踪了一下偏移量,是系统的问题,最后的变化是非线性的
我暂时没遇到过这种,知道是偏移量变化问题,可以考虑写个函数处理下返回值,做一下钝化
还是感觉是不是有什么操作让vp2没有完成惯性滑动,vp2一般都是线性完成滑动
同样是遇到了抖动问题,只要是已选择的indicator滑出屏幕,就开始一直抖动。
同样是遇到了抖动问题,只要是已选择的indicator滑出屏幕,就开始一直抖动。
解决了,设置 :
isReselectWhenLayout = true