周末就要到了,今天項目中遇到這樣一個Tab,選中tab的背景是個圓角矩形,方向指向器沒有了,這樣普通的TabLayout不能滿足我的要求,可能會想到動態(tài)的去設(shè)置選中Tab的背景不就可以了,但是那樣的話太生硬了,沒有動畫效果,其實想想也還比較簡單,今天就簡單的說一說這個YzzTab。效果如下圖:
成都創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為永福企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站制作,永福網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。這里是四個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(); } }