hackware1993 / MagicIndicator

A powerful, customizable and extensible ViewPager indicator framework. As the best alternative of ViewPagerIndicator, TabLayout and PagerSlidingTabStrip —— 强大、可定制、易扩展的 ViewPager 指示器框架。是ViewPagerIndicator、TabLayout、PagerSlidingTabStrip的最佳替代品。支持角标,更支持在非ViewPager场景下使用(使用hide()、show()切换Fragment或使用setVisibility切换FrameLayout里的View等),http://www.jianshu.com/p/f3022211821c

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

提两个需求,指示器渐变色,已经标题字体改变

qianshengta opened this issue · comments

设计需要指示器建渐变色,我试过去过去paint设置渐变,但是发现他在滑动过程中是会改变的,所以我集成重写了LinePagerIndicator,改了一段代码

     //指示器颜色渐变
        if (mGradientColors != null && mGradientColors!!.size >= 2) {
            val lg = LinearGradient(
                mLineRect.left, mLineRect.top, mLineRect.right, mLineRect.bottom,
                mGradientColors!![0], mGradientColors!![1], Shader.TileMode.MIRROR
            )
            mPaint!!.shader = lg
        } else {
            // 计算颜色
            if (mColors != null && mColors!!.size > 0) {
                val currentColor = mColors!![Math.abs(position) % mColors!!.size]
                val nextColor = mColors!![Math.abs(position + 1) % mColors!!.size]
                val color = ArgbEvaluatorHolder.eval(positionOffset, currentColor, nextColor)
                mPaint!!.color = color
            }
        }

另外一个需求是标题不仅仅改变颜色,字体也要跟着改变,看了源码发下在监听中只有改变字体颜色的,所以这里希望作者能够添加一个改变字体的api