* 這個方法
可以為某乙個值
* 賦值
*/displaymetrics dm = getresources().getdisplaymetrics();
, scrolloffset, dm);
, indicatorheight
, dm);
, underlineheight
, dm);
, dividerpadding
, dm);
, tabpadding
, dm);
, dividerwidth
, dm);
, tabtextsize
, dm);
/*** 取出
xml中配置的屬性
*/a = context.obtainstyledattributes(attrs, r.styleable.pagerslidingtabstrip
);
indicatorcolor = a.getcolor(r.styleable.pagerslidingtabstrip_pstsindicatorcolor, indicatorcolor);
underlinecolor = a.getcolor(r.styleable.pagerslidingtabstrip_pstsunderlinecolor
, underlinecolor);
dividercolor = a.getcolor(r.styleable.pagerslidingtabstrip_pstsdividercolor
, dividercolor);
indicatorheight = a.getdimensionpixelsize(r.styleable.pagerslidingtabstrip_pstsindicatorheight
, indicatorheight);
underlineheight = a.getdimensionpixelsize(r.styleable.pagerslidingtabstrip_pstsunderlineheight
, underlineheight);
dividerpadding = a.getdimensionpixelsize(r.styleable.pagerslidingtabstrip_pstsdividerpadding
, dividerpadding);
tabpadding = a.getdimensionpixelsize(r.styleable.pagerslidingtabstrip_pststabpaddingleftright
, tabpadding);
tabbackgroundresid = a.getresourceid(r.styleable.pagerslidingtabstrip_pststabbackground
, tabbackgroundresid);
shouldexpand = a.getboolean(r.styleable.pagerslidingtabstrip_pstsshouldexpand
, shouldexpand);
scrolloffset = a.getdimensionpixelsize(r.styleable.pagerslidingtabstrip_pstsscrolloffset
, scrolloffset);
textallcaps = a.getboolean(r.styleable.pagerslidingtabstrip_pststextallcaps
, textallcaps);
//初始化畫筆,用於
,乙個矩形
rectpaint = new paint();
rectpaint.setantialias(true);
rectpaint.setstyle(style.fill
);
/*** 繫結乙個
listener
版定之後
,外部不能重複版定
,重複版定
,這個就會失效了
*/pager.setonpagechangelistener(pagelistener);
/*** 得到檢視樹的監聽者
,,得到乙個空間布局完成
*/getviewtreeobserver().addongloballayoutlistener(new ongloballayoutlistener() else
currentposition = pager.getcurrentitem();
scrolltochild(currentposition
, 0);
}});
/*** 修改樣式
_只是預設時候的字型顏色以及字型大小
* 修改樣式
,,修改的只是預設時候的字型顏色和預設大小
*/private void
updatetabstyles() else }}
}}
/*** 繪製 矩形
*/canvas.drawrect(lineleft, height - indicatorheight
, lineright, height,
rectpaint);
或庫中新增作為專案。下面是參考別人的分析
對於這個專案的執行工作看到了sample/
資料夾。包括在以下依賴
build.gradle
檔案。
compile 'com.jpardogo.materialtabstrip:library:1.1.1'
我試圖傳送乙個拉入請求,但看起來像原開發商不能維持下去了。
包括pagerslidingtabstrip
在布局小部件。
這通常應放在上面的
viewpager
它代表。
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionbarsize"
android:background="?attr/colorprimary" />
在oncreate
方法(或oncreateview
為乙個片段),結合小視窗的viewpager
:
// initialize the viewpager and set an adapter
viewpager pager = (viewpager) findviewbyid(r.id.pager);
pager.setadapter(new testadapter(getsupportfragmentmanager()));
// bind the tabs to the viewpager
pagerslidingtabstrip tabs = (pagerslidingtabstrip) findviewbyid(r.id.tabs);
tabs.setviewpager(pager);
如果您的介面卡實現介面customtabprovider
可以貼上您的自定義選項卡檢視/秒。
(可選)
如果您使用onpagechangelistener
你的看法尋呼機,你應該將其設定在小部件,而不是直接在尋呼機。
// continued from above
tabs.setonpagechangelistener(mpagechangelistener);
從主題:
注意事項的一些原生屬性:
自定義屬性:
幾乎所有的屬性都有其各自的getter和setter方法在執行時改變它們。
動態地改變
pststabtextfontfamily
和pststabtextstyle
您可以撥打:
Cartographer原始碼篇 原始碼分析 1
在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...
AbstractListView原始碼分析3
normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...
Android AsyncTask原始碼分析
android中只能在主線程中進行ui操作,如果是其它子執行緒,需要借助非同步訊息處理機制handler。除此之外,還有個非常方便的asynctask類,這個類內部封裝了handler和執行緒池。本文先簡要介紹asynctask的用法,然後分析具體實現。asynctask是乙個抽象類,我們需要建立子...