如果你想使用选项卡导航栏但又不想使用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);