您的位置:首页 > 其它

ViewPager标签栏滑条

2016-02-14 19:47 393 查看




主要实现是依靠ViewPager设置OnPageChangeListener监听。

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
Log.d("onPageSelected", ""+arg0);
if(!mIsBeChoose)
mChooseBar.setCurrentPosition(arg0);
}

@Override
public void onPageScrolled(int position, float arg1, int positionOffsetPixels) {
// TODO Auto-generated method stub
Log.i("onPageScrolled", ""+position+" "+arg1+" "+positionOffsetPixels);
mSlideLayout.scrollTo((int) (-(position+arg1)*mWidthOfSlideBlock), 0);
}

@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
if(arg0 == 0){
mIsBeChoose = false;
}
Log.e("onPageScrollStateChanged", ""+arg0);
}
});关键是要理解onPageScrolled()函数的各个参数的含义:第一个参数position是当前屏幕显示的页中页号的最小值,然后第二个参数是页号最小的页占当前占屏幕的百分比。然后注意scrolleTo的原理,就可以写出调用的式子:mSlideLayout.scrollTo((int) (-(position+arg1)*mWidthOfSlideBlock), 0);

源码:https://github.com/HOOOOOO/ViewPagerSlideBlock
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息