Tablayout是什么
Tablayout的使用
1.首先必須導(dǎo)入谷歌的依賴(lài)包
2. 創(chuàng)建布局(2種方式)
I.在 Xml 文件里創(chuàng)建?(靜態(tài)創(chuàng)建)
< android.support.design.widget.TabLayout
? ? ?android:id="@+id/tabLayout"
? ? ?android:layout_width="match_parent"
? ? ?android:layout_height="wrap_content" >
? ? ?< android.support.design.widget.TabItem
? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? android:text="新聞"/>
? ? ?< android.support.design.widget.TabItem
? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? android:text="娛樂(lè)"/>
</android.support.design.widget.TabLayout>
II.在代碼里創(chuàng)建 (動(dòng)態(tài)創(chuàng)建)
tabLayout= (TabLayout) findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setText("新聞"));
tabLayout.addTab(tabLayout.newTab().setText("娛樂(lè)"));
tabLayout.addTab(tabLayout.newTab().setText("軍事"));
tabLayout.addTab(tabLayout.newTab().setText("生活"));
Tablayout的屬性
app:tabMod? ? 設(shè)置Tab模式
fixed :固定模式,無(wú)法滑動(dòng)讹躯,每個(gè)選項(xiàng)卡平均分配空間收厨,適合較少Tab選項(xiàng)卡的情況划咐,當(dāng)選項(xiàng)卡較多時(shí)卒落,會(huì)出現(xiàn)每個(gè)選項(xiàng)卡內(nèi)容無(wú)法顯示完整的情況腕够,請(qǐng)大家大家根據(jù)情況選擇。
scrollable:滑動(dòng)模式,向左對(duì)齊埃疫,如今日頭條,網(wǎng)易新聞就是scrollable孩哑,但是在Tab選項(xiàng)卡較少時(shí)會(huì)無(wú)法填滿(mǎn)TabLayout欄栓霜。
app:tabTextAppearance ? 改變字體大小
本來(lái)以為可以直接設(shè)置 sp,結(jié)果不行臭笆,只能調(diào)用 style 里的設(shè)置
@android:style/TextAppearance.Holo.Large ? ? ? ? ? ? ? ? ? ? 22sp
@android:style/TextAppearance.Holo.Medium ? ? ? ? ? ? ? ? 18sp
@android:style/TextAppearance.Holo.Small ? ? ? ? ? ? ? ? ? ? 14sp
app:tabTextColor ? 設(shè)置文本顏色
app:tabSelectedTextColor ? ?設(shè)置選中文本顏色
app:tabIndicatorColor ? ? 設(shè)置下滑條顏色
app:tabMaxWidth="xxdp"? ? 設(shè)置最大的tab寬度
app:tabMinWidth="xxdp"? ? 設(shè)置最小的tab寬度
TabLayout的監(jiān)聽(tīng)事件
tabLayout.setOnTabSelectedListener(newTabLayout.OnTabSelectedListener() {
? ? ?@Override
? ? ?public voidonTabSelected(TabLayout.Tab tab) {
? ? ? ? ?//選中了tab
? ? ?}
? ? ?@Override
? ? ?public voidonTabUnselected(TabLayout.Tab tab) {
? ? ? ? ?//未選中tab
? ? ?}
? ? ?@Override
? ? ?public voidonTabReselected(TabLayout.Tab tab) {
? ? ? ? //再次選中tab
? ? ?}
} );
Tablayout 配合 Viewpager
簡(jiǎn)單粗暴一句代碼
tabLayout.setupWithViewPager(Viewpager);
有些時(shí)候可能會(huì)出現(xiàn)不顯示文本的情況叙淌,這時(shí)候需要在 PagerAdapter 里面重寫(xiě)一個(gè)方法
String mStrings = new String[ ]{"新聞","IT","軍事","娛樂(lè)"};
@Override
public CharSequence getPageTitle(int position) {
? ? return mStrings[position];
}