viewpager 和滑动条同步滚动

实现上面的radiobutton和viewpager同步滚动太过复杂,请直接使用开源项目PagerSlidingTabStrip

共有6个的页面,导航栏用horizontalscrollview封装radiogroup。点击radiobutton跳转到对应的页面。滑动pager也可以让radiogroup一起滑动。

自定义进度条view,关联viewpager的onPageScolled()方法。onPageScolled中在调用setOffSet()。即可实现滑动条和页面同步滚动。



public class StripView extends View {


    private int mTabNum=6;//标题数目,
    private int mCurrentNum;//当前所在标题
    private float mWidth,mTabWidth,mOffSet;
    private final Paint mPaint= new Paint(Paint.ANTI_ALIAS_FLAG);
    public StripView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public void setCurrentNum(int n) {
        mCurrentNum = n;
        mOffSet = 0;
    }
    public void setOffSet(int position,float offset){
        if(offset == 0) {
            return;
        }
        mCurrentNum = position;
        mOffSet=offset;
        invalidate();
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
            mWidth = getWidth();
            mTabWidth = mWidth/6;
        float left = (mCurrentNum + mOffSet) * mTabWidth;


        final float top = getPaddingTop();
        final float right = left + mTabWidth;
        final float bottom = getHeight() +getPaddingTop();
        mPaint.setColor(getResources().getColor(R.color.cyan));
        canvas.drawRect(left, top, right, bottom, mPaint);


    }
}



转载于:https://my.oschina.net/sldk/blog/397633

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值