ViewPager
Android支持庫兼容。
有關此項目的工作實現,請參閱該sample/
文件夾。
build.gradle
文件中包含以下依賴項。compile 'com.jpardogo.materialtabstrip:library:1.1.1'
或者將庫添加為項目。我試圖發送拉取請求,但看起來原始開發人員不再維護它了。
PagerSlidingTabStrip
在布局中包含小部件。這應該通常放在ViewPager
它代表的上方。<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
onCreate
方法(或onCreateView
片段)中,將小部件綁定到ViewPager
://初始化ViewPager并設置一個適配器
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
//綁定的標簽到ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
如果您的適配器實現了界面,CustomTabProvider
您可以粘貼自定義選項卡視圖。
如果返回的視圖包含id R.id.psts_tab_title
,則此視圖應為a TextView
并將用于放置標題并設置視圖狀態(按下/選擇/默認)。
如果您不希望庫管理選項卡的TextView標題,請使用與R.id.psts_tab_title
選項卡布局不同的ID 。
該界面還提供了選擇和取消選擇選項卡的回調。
如果您的適配器未實現該接口CustomTabProvider
,則將使用默認選項卡,其中TextView
包含id R.id.psts_tab_title
)。
(可選)如果您使用OnPageChangeListener
視圖尋呼機,則應在窗口小部件中而不是直接在尋呼機上設置它。
//從上面繼續
tabs.setOnPageChangeListener(mPageChangeListener);
來自主題:
android:textColorPrimary
如果未在xml布局上定義值,則值(來自您的主題)將自動應用于選項卡的文本顏色(選定選項卡,包含255個alpha和非選定選項卡,包含150 alpha),underlineColor,dividerColor和indicatorColor。關于一些本機屬性的注釋:
android:paddingLeft
或android:paddingRight
布局填充。如果你同時使用它們,它們應該是平衡的。查看問題#69以獲取更多信息。自定義屬性:
pstsIndicatorColor
滑動指示器的顏色。textColorPrimary
將是它的默認顏色值。pstsIndicatorHeight
滑動指示器的高度。pstsUnderlineColor
視圖底部的全寬線的顏色。textColorPrimary
將是它的默認顏色值。pstsUnderlineHeight
視圖底部的全寬線高度。pstsDividerColor
標簽之間的分隔線的顏色。textColorPrimary
將是它的默認顏色值。pstsDividerWidth
分隔線的行程寬度,默認為0。pstsDividerPadding
分隔線的頂部和底部填充。pstsShouldExpand
如果設置為true,則每個選項卡的權重相同,默認為false。pstsScrollOffset
滾動選定選項卡的偏移量。pstsPaddingMiddle
如果為true,則選項卡從視圖的中間開始(如Newsstand谷歌應用程序)。pstsTabPaddingLeftRight
每個標簽的左右填充。pstsTabBackground
每個選項卡的后臺drawable,應該是StateListDrawable。pstsTabTextSize
標簽文字大小(sp)。pstsTabTextColor
選項卡文本顏色可以是顏色(文本顏色不會更改),也可以是每個狀態顏色的選擇器:按下(按下選項卡),選中(選項卡處于活動狀態),默認(活動非活動)。選擇器中的狀態順序很重要。查看問題#68以獲取更多信息。pstsTabTextStyle
設置文本樣式,在API 21上默認為normal,在舊API上為粗體。pstsTabTextAllCaps
如果為true,則所有制表符都將為大寫,默認為true。pstsTabTextAlpha
為非選定選項卡設置文本Alpha透明度。范圍0..255。150是它的默認值。如果在布局中定義,則不會使用它pstsTabTextColor
。如果pstsTabTextColor
是NOT定義,將施加到非選擇的選項卡。pstsTabTextFontFamily
設置字體系列名稱。sans-serif-medium
API 21 sans-serif
上的默認值,在較舊的API上。
幾乎所有屬性都有各自的getter和setter來在運行時更改它們。要動態更改pstsTabTextFontFamily
, pstsTabTextStyle
您可以致電:
public void setTypeface(Typeface typeface, int style)
。它可用于在默認選項卡中定義自定義字體。否則,您可以使用自定義標簽CustomTabProvider
。