ViewPagerIndicator设置指示点的间距

时间:2022-06-22 00:53:44

ViewPagerIndicator在github项目地址:https://github.com/JakeWharton/ViewPagerIndicator

Demo地址在本人的上传资源中,


ViewPagerIndicator设置指示点的间距

在使用PagerIndicator时有时我们需要设置指示点与指示点之间的距离,这时发现并没有对应的API,所以要修改

CirclePageIndicator的一部分代码,其实CirclePageIndicator的指示点并不居中,将点的大小设置很大就可以看出来,
重写代码:
找到CirclePageIndicator中的这一段代码
ViewPagerIndicator设置指示点的间距
将其替换为如下代码:(mPadding为类的成员变量)
    if(mPadding == 0){            mPadding = mRadius;        }
        final float threeRadius = mRadius * 2+mPadding;        final float shortOffset = shortPaddingBefore + mRadius;        float longOffset = longPaddingBefore + mRadius;        if (mCentered) {            if(count >1){                longOffset +=   (longSize - longPaddingBefore - longPaddingAfter) / 2.0f - (count*2*mRadius+(count-1)*mPadding)/2.0f;            }else{                longOffset +=   (longSize - longPaddingBefore - longPaddingAfter) / 2.0f - mRadius;            }        }

mPadding为间距,默认等于指示点的半径,暴露设置mPadding的方法,

public void setPadding(float pad){mPadding = pad;invalidate();}在代码中调用:indicator.setPadding(5f);