TabLayout的學(xué)習(xí)

首先,本文主要就是在使用TabLayout與ViewPager完成Tab導(dǎo)航,進(jìn)一步學(xué)習(xí)下TabLayout。

一、TabLayout的關(guān)鍵API

1.setupWithViewpager(ViewPager viewPager)

該方法完成了TabLayout與ViewPager的關(guān)聯(lián),該方法的源碼也是非常清晰易讀(如下)。

setupWithViewPager方法源碼

該方法主要做了幾件事:

(1)獲取ViewPager的adapter,該adapter可以設(shè)置與ViewPager同步的tab標(biāo)題。

(2)利用ViewPager的回調(diào)接口,采用的是TabLayoutOnPageChangeListener,處理當(dāng)viewpager滑動(dòng)改變時(shí),TabLayout中的tab也與之同步改變,

(3)TabLayout的回調(diào)接口,這個(gè)回調(diào)接口中一個(gè)重要的參數(shù)就是viewpager,這樣當(dāng)滑動(dòng)選擇或點(diǎn)擊選中tab時(shí),ViewPager也能同步對(duì)應(yīng)變化。

(4)根據(jù)當(dāng)前的viewpager選中項(xiàng),來(lái)設(shè)置TabLayout的當(dāng)前選中tab。

二、TabLayout的內(nèi)部類:Tab、TabView、SlidingTabStrip

1、Tab類是對(duì)Tab最基礎(chǔ)的抽象,最基礎(chǔ)的當(dāng)然是設(shè)置Tab的標(biāo)題,也支持設(shè)置Tab的圖標(biāo)(setIcon方法)。

2、TabView類是對(duì)Tab類進(jìn)行一個(gè)二次封裝。

3、SlidingTabStrip類主要處理指示線的,即Tab的下劃線(隨著Tab的滑動(dòng)而滑動(dòng))。

三、TabLayout的Tab滾動(dòng)

1、從源碼中看到主要就是在animateToTab(int newPosition)方法中完成的。

Tab的滾動(dòng)主要就是通過(guò)ValueAnimatorCompat(屬性動(dòng)畫(huà),做了兼容處理),通過(guò)屬性動(dòng)畫(huà)改變x軸的值,然后通過(guò)scrollTo方法實(shí)現(xiàn)滾動(dòng)(TabLayout繼承自HorizontalScrollView)。

最后,文章寫得還是很簡(jiǎn)單,自己要堅(jiān)持寫,爭(zhēng)取寫得更好。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容