如果你想使用选项卡导航栏但又不想使用ActoinBar的话,就可以选择给ViewPager添加PagerTabStrip或者PagerTitleStrip来实现。PagerTitleStrip是非交互式的,PagerTapStrip是交互式的,二者在其他方面完全相同。
以PagerTapStrip为例来说明:
1. 在ViewPager布局中添加PagerTapStrip
PagerTapStrip同样也放在android.support.v4.view中
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top" />
</android.support.v4.view.ViewPager>
2. 为选项卡添加标题
首先要将标题保存在数组中:
List<String> titleList = new ArrayList<String>();
titleList.add("第一页");
titleList.add("第二页");
titleList.add("第三页");
titleList.add("第四页");
将保存的数组传递给自定义的适配器
adapter = new MyPagerAdapter(viewList, titleList);
viewPager.setAdapter(adapter);
在适配器中,提供初始化方法,并且调用getPageTitle() 方法
public class MyPagerAdapter extends PagerAdapter {
private List<View> viewList;
<strong>private List<String> titleList;</strong>
public MyPagerAdapter(List<View> ViewList, List<String> titleList) {
this.viewList = ViewList;
this.titleList = titleList;
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
<strong>@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}</strong>
}
3. 设置PagerTabStrip的属性
首先要获取PagerTabStrip的实例,然后可以调用它的方法设置属性。具体的方法可以再官方文档中查到
PagerTabStrip tabStrip = (PagerTabStrip) findViewById(R.id.tab);
tabStrip.setBackgroundColor(Color.GRAY);
tabStrip.setTextColor(Color.CYAN);
tabStrip.setTabIndicatorColor(Color.BLACK);
tabStrip.setDrawFullUnderline(false);