周末就要到了,今天項目中遇到這樣一個Tab,選中tab的背景是個圓角矩形,方向指向器沒有了,這樣普通的TabLayout不能滿足我的要求,可能會想到動態(tài)的去設(shè)置選中Tab的背景不就可以了,但是那樣的話太生硬了,沒有動畫效果,其實想想也還比較簡單,今天就簡單的說一說這個YzzTab。效果如下圖:
這里是四個Tab,一版只顯示3個,這里假設(shè)有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中顯示的大數(shù)-1時,會向左右滑動,指示器也會 //跟這滑動,相對靜止,否則指示器滑動,Tab布局不移動 if (position>=mMaxLineNum-1) { scrollContent += leftCop - leftForTabLayout; scrollTo(scrollContent, 0); //這里要重新layout update(); } leftForTabLayout = leftCop; invalidate(); } }