Design Library -- TabLayout的用法
TabLayout
TabLayout提供了一個水平的布局用來展示Tabs
可以實現(xiàn)與ViewPager聯(lián)動(實現(xiàn)效果類似ViewPagerIndicator,不過ViewPagerIndicator,TabLayout各有各的優(yōu)點,如果是單純的聯(lián)動推薦使用TabLayout)
使用注意
- Theme要求
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.
在清單文件中設置如下代碼即可:
android:theme="@style/Theme.AppCompat"
- 重寫TabFragmentAdapter中的getPageTitle方法,如果忘記重寫會導致聯(lián)動Viewpager后沒有title
@Override
public CharSequence getPageTitle(int position) {
return mTitles.get(position);
}
- 在Tab選中的時候,設置ViewPager的聯(lián)動:
viewpager.setCurrentItem(tab.getPosition());
- 在TabLayout的監(jiān)聽里面,onTabSelected方法里
使用說明
只實現(xiàn)滾動列表
- 用資源文件或者code,不連動
滾動并聯(lián)動
- 資源文件或代碼addtab
- ViewPager + Fragment
- FragmentAdapter或者FragmentStateAdapter并且要手動實現(xiàn)getPageTitle(int position)方法
基本的使用與屬性詳解
- 這篇文章有詳細的與聯(lián)動實現(xiàn),并且有每一個頁面的Fragment寫法,每個title-item的自定義Tab樣式(因為TabLayout的Tab選擇時,字體比未選中大了一號,自帶的Api中tabTextAppearance(文字樣式)已經(jīng)不能滿足)
從TabLayout源碼告訴你使用它的正確姿勢,讓你馬上愛上它
- 一個很詳細的測試項目