您可以使用此兩個新類來創建標籤SlidingTabLayout,SlidingTabStrip,你必須用一些片斷傳遞ViewPager這個類,對每個選項卡使用setCustomTabView
自定義視圖。你可以找到谷歌的例子。
編輯:
自定義佈局(我同時包含圖片和文字)設置你的標籤是這樣的:
slideTab = (SlidingTabLayout) findViewById(R.id.getbook_sliding_tabs);
slideTab.setDistributeEvenly(true);
slideTab.setCustomTabView(R.layout.cat_tab_layout, R.id.main_tab_title);
的cat_tab_layout
:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dip"
android:background="@drawable/cat_tab_background">
<ImageView
android:id="@+id/main_tab_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cat_all_book_icon"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/main_tab_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tab1"
android:textColor="@color/medium_gray"
android:layout_below="@id/main_tab_image"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
做一些變化populateTabStrip()
形式SlidingTabLayout
等級:
adapter = (GetBookFragmentPagesAdapter)mViewPager.getAdapter();// get your view pager adapter
for (int i = 0; i < adapter.getCount(); i++) {
....
if (mTabViewLayoutId != 0) {
// If there is a custom tab view layout id set, try and inflate it
tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
ImageView tabImage = (ImageView)tabView.findViewById(R.id.main_tab_image);
tabImage.setImageResource(adapter.getImages(i)); // getImage() return image id for each tab
}
....
,那麼你將最終的東西是這樣的:
檢查這個答案也許? http://stackoverflow.com/questions/10297293/android-how-can-i-replace-the-deprecated-tabhost – miselking 2015-02-07 15:21:52