Material Design伴隨android5.0出現後,我們發現Google終於意識到了自己以往在UI設計方面的不足(或者說缺陷),
其中一款用於標籤導航的控件正式出現在design兼容包中——滑動指示選項卡tablayout,tablayout主要用於可切換的標籤
效果。(注:大家千萬別和TableLayout控件搞混了,兩個之間沒有一毛錢關係)
首先在代碼中獲取tablayout控件,然後通過代碼的方式添加簽:
tablayout.addTab(tablayout.newTab().setText("tab"+i));
tablayout.addTab()中還可以添加boolean參數,true爲默認選中標籤,false爲該標籤沒被選中;
tablayout.addTab(tablayout.newTab().setText("tab"+i),false);在佈局文件中也可以:
app:tabMode //參數可選fixed和scrollable——fixed是指固定個數, scrollable是使其可以橫行滾動
app:tabGravity //對齊方式,可選fill和center(注:此兩種屬性值只有在tabMode設置爲fixed的情況下有效)在代碼中還可以(代碼中寫的方法在xml的TabLayout控件下都有與之對應的屬性,代碼覺得麻煩的就在xml中設置):
tablayout.setSelectedTabIndicatorHeight(); //設置被選中標籤下方導航條的高度
tablayout.setTabTextColors(Color.Black,Color.Gray); //設置標籤的字體顏色,1爲未選中標籤的字體顏色,2爲被 選中標籤的字體顏色
tablayout.setTabMode();
setTabMode()有兩個可選參數:
MODE_FIXED //表示寬度始終是tablayout控件指定的寬度,如果標籤過多,那麼就無限擠壓控件
MODE_SCROLLABLE //表示每個標籤都保持自身寬度,一旦標籤過多,給標題欄提供支持橫向滑動的功能
tablayout.setTabGravity(); //注:此條屬性必須配合MODE_FIXED使用,不然不起作用
TabGravity有兩個可選參數:
GRAVITY_FILL //讓每個標籤平分TabLayout的全部寬度
GRAVITY_CENTER //讓每個標籤顯示自身寬度,然後所有標籤居中顯示
TabLayout還有以下常用設置方法:
app:tabIndicatorColor // tab指示符顏色
app:tabSelectedTextColor // tab被選中字體顏色
app:tabTextColor // tab未被選中字體顏色
tablayout.setSelectedTabIndicatorColor(); //設置被選中標籤下方導航條顏色
TabLayout中改變tab的字體大小隻能依靠app:tabTextAppearance來設置
app:tabTextAppearance="@style/tabtextstyle"
在res/values/styles中添加:
<style name="tabtextstyle">
<item name="android:textSize">@dimen/tabtextsize</item>
</style>
在res/values/dimens中添加:
<dimen name="tabtextsize">12sp</dimen>