使用方法:
1.引用library,並解決support v4 jar包沖突
2.布局文件中添加viewpager和viewpagerindicator,布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.viewpagerindicator.TabPageIndicator android:id="@+id/vpi_indicator" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/base_action_bar_bg" > </com.viewpagerindicator.TabPageIndicator> <android.support.v4.view.ViewPager android:id="@+id/vp_news" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </android.support.v4.view.ViewPager> </LinearLayout>
3.聲明viewpagerindicator,java代碼:
vp_news.setAdapter(new NewsTabPagerAdapter());//給viewpager設置數據適配器 // ViewPagerIndicator聲明 TabPageIndicator indicator = (TabPageIndicator) mActivity .findViewById(R.id.vpi_indicator); indicator.setViewPager(vp_news);// 綁定必須要在viewpager設置好數據適配器之后
4.viewpager數據適配器類中重寫getPageTitle方法,java代碼:
@Override//獲取title,從而indicator可以從此獲取title public CharSequence getPageTitle(int position) { return mChildren.get(position).title;//這里具體實現方法自己寫 }
5.在清單文件中給ViewpagerIndicator所在的activity設置主題,清單文件:
<activity android:name=".MainActivity" android:theme="@style/Theme.PageIndicatorDefaults" />
其他樣式可在該主題里改,得出一個黑色的背景,如圖:
附加:想更換背景顏色,可以在當前頁面所在的activity的布局文件里更改背景顏色。例如,我的mainActivity布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fl_main" android:background="#fff" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout>
注意:使用indicator的時候,如果我們想要給viewpager設置頁面切換監聽事件setOnPageChangeListener(new MyPageChangeListener());
要給indicator設置,而不要給viewpager設置,否則沒反應,換句話說,如果我們不小心給viewpager設置頁面切換監聽事件,而又沒反應的時候,或者出現奇怪的現象,就應該想到這個問題。因為事件要傳遞給indicator,它才能正確地指示。