周末就要到了,今天项目中遇到这样一个Tab,选中tab的背景是个圆角矩形,方向指向器没有了,这样普通的TabLayout不能满足我的要求,可能会想到动态的去设置选中Tab的背景不就可以了,但是那样的话太生硬了,没有动画效果,其实想想也还比较简单,今天就简单的说一说这个YzzTab。效果如下图:

这里是四个Tab,一版只显示3个,这里假设有num个Tab,当滑动到第3个时,这里就需要考虑如何让TabLayout和指示器一起移动呢?
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (positionOffset>1){
return;
}
int leftCop = (int) (positionOffset*(getMeasuredWidth()/mMaxLineNum)+position*getMeasuredWidth()/mMaxLineNum);
if (leftCop!=leftForTabLayout){
//这里要做判断是否滑动,当选择的位置大于TabLayout中显示的大数-1时,会向左右滑动,指示器也会
//跟这滑动,相对静止,否则指示器滑动,Tab布局不移动
if (position>=mMaxLineNum-1) {
scrollContent += leftCop - leftForTabLayout;
scrollTo(scrollContent, 0);
//这里要重新layout
update();
}
leftForTabLayout = leftCop;
invalidate();
}
}