1.什麼是tablayout
在原始碼中給出了tablayout的定義:
tablayout provides a horizontal layout to display tabs.意思很明顯:tablayout提供了乙個水平的布局用來展示tabs。
design庫:as有直接的引用,如果是eclipse這裡提供乙個通道-design庫
特別說明:
在清單檔案中設定如下**即可:
2.tablayout的基本使用方式
方式一:
1.在布局中加入該控制項:
android:id="@+id/tablayout"2.在**中android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
tablayout= (tablayout) findviewbyid(r.id.tablayout);3.顯示效果tablayout.addtab(tablayout.newtab().settext("tab 1"));
tablayout.addtab(tablayout.newtab().settext("tab 2"));
tablayout.addtab(tablayout.newtab().settext("tab 3"));
感覺還不錯吧,挺簡單就實現了這個ui效果。
方式二:
android:layout_width="wrap_content"這樣同樣也可以實現方式一的效果,可是單單這樣並不能滿足我們。於是接下來看看有什麼屬性可以使用。android:layout_height="wrap_content">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tab1"/>
3.改變下tablayout的顏色
上面的tab顏色感覺不好看,打算換換:
1.改變選中字型的顏色
2.改變未選中字型的顏色
3.改變指示器下標的顏色
4.改變整個tablayout的顏色
於是現在我的tab變成了這個樣子:
4.改變tablayout內部字型大小
總覺得這個字型有點小了,於是想找方法把這個字變得大一點,
好像沒有直接變大的方法,可是找到了這個:
效果:
5.改變指示器下標的高度
既然字型變大了,指示器太小就顯得不太好看了,
設定指示器下標的高度:
效果:
6.新增圖示
有時候tab只有文字感覺有點單調了:
7.tab的模式
我們先多加幾個tab:
tablayout.addtab(tablayout.newtab().settext("tab 4"));然後設定屬性為:tablayout.addtab(tablayout.newtab().settext("tab 5"));
tablayout.addtab(tablayout.newtab().settext("tab 6"));
tablayout.addtab(tablayout.newtab().settext("tab 7"));
預設是fixed:固定的,標籤很多時候會被擠壓,不能滑動。
效果如下:
8.加入padding
設定tab內部的子控制項的padding:
設定整個tablayout的padding:
9.內容的顯示模式
10.tab的寬度限制
設定最大的tab寬度:
設定最小的tab寬度:
11.tab的「margin」
tablayout開始位置的偏移量:
12.tablayout的監聽事件
選中了某個tab的監聽事件ontabselectedlistener():
tablayout.setontabselectedlistener(newtablayout.ontabselectedlistener() {13.和viewpager的聯動@override
public voidontabselected(tablayout.tab tab) {
//選中了tab的邏輯
@override
public voidontabunselected(tablayout.tab tab) {
//未選中tab的邏輯
@override
public voidontabreselected(tablayout.tab tab) {
//再次選中tab的邏輯
最後也是最重要的:
tablayout.setupwithviewpager(viewpager);一行**和viewpager聯動起來,簡單粗暴。
主要就是設定下標的高度為0,相當於沒有下標。
然後設定背景顏色以及選中文字顏色
最後設定tab的模式:
15.仿京東商品詳情android端的tab
主要原理是setcustomview()載入自定義檢視,來實現字型大小的改變,預設的tablayout不能改變。
design庫-tablayout仿京東商品詳情tab
補充:預設選中某項
tablayout.gettabat(position).select();
Design庫 TabLayout屬性詳解
1.什麼是tablayout 在原始碼中給出了tablayout的定義 tablayout provides a horizontal layout to display tabs.意思很明顯 tablayout提供了乙個水平的布局用來展示tabs。design庫 as有直接的引用,如果是eclip...
Design 設計模式之旅
他山之石,可以攻玉,設計模式起源於建築學,在軟體行業它把面向象的理念發揮到了極致,對於重複出現的問題,它提出了既幽雅又實際的解決方案。適當掌握和應用設計模式可以提高編碼的質量,提高自己的能力,往架構方面發展。設計模式更多的是一種思想的體現,不能生搬硬套。學習設計模式要做到真正的理解,因為在實際系統中...
養牛派APP介面DESIGN
任務詳情 任務要求 1 設計ui介面,功能要跟產品原型保持一致,但不限定設計師的具體排版和構圖創意 2 設計ui介面,要符合ios9或material design的互動規範,否則一律不予納用 6 如果遇到設計師能力不達標的情況下,猿團有權選擇關閉或重新發布任務,另選設計師加入設計任務 7 設計師在...