1、PagerTabStrip的使用要点就是在定义适配的时候(继承PagerAdapter)中多重写了一个方法getPageTitle(int position),该方法的返回值直接将字符序列的内容填充到了PagerTabStrip标签中,只需要设置下PagerTabStrip的属性即可,其他使用方法与ViewPager的用法一致
/**
*
* 根据 position 返回 title 的 方法
*
* 如果有需要的时候 重写 不需要的时候不需要重写
*/
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
2、具体的代码如下
activity_main.xml
<RelativeLayout 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.support.v4.view.ViewPager
android:id="@+id/viewPager_vp"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- 标签 -->
<android.support.v4.view.PagerTabStrip
android:id="@+id/pagerTab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" >
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
MainActivity.java具体代码
package com.afang.exec_viewpager02;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import com.afang.exec_viewpager02.adapter.MyPagerAdapter;
public class MainActivity extends Activity {
private ViewPager viewPager;
private PagerTabStrip pagerTabStrip;
// 定义数据源
List<View> data = new ArrayList<View>();
int[] images = { R.drawable.v1, R.drawable.v2, R.drawable.v3, R.drawable.v4 };
String[] titles = { "孙悟空", "路飞", "鸣人", "Gray" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
viewPager = (ViewPager)findViewById(R.id.viewPager);
pagerTabStrip = (PagerTabStrip)findViewById(R.id.pagerTabStrip);
//初始化数据
initData();
//创建适配器,先定义一个适配器
MyPagerAdapter adapter = new MyPagerAdapter(data,titles);
//设置PagerTabStrip的属性
pagerTabStrip.setBackgroundColor(Color.BLACK); //设置背景颜色
pagerTabStrip.setTextColor(Color.WHITE);//设置字体颜色
pagerTabStrip.setTabIndicatorColor(Color.BLUE);//设置下划线颜色
pagerTabStrip.setDrawFullUnderline(true);//设置下划线是否充满全屏
//设置适配器
viewPager.setAdapter(adapter);
}
private void initData() {
for (int i = 0; i < images.length; i++) {
ImageView image = new ImageView(this);
image.setImageResource(images[i]);
data.add(image);
}
}
}
自定义的pagerAdapter ——MyPagerAdapter
package com.afang.exec_viewpager02.adapter;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class MyPagerAdapter extends PagerAdapter {
private List<View> data;
private String[] titles;
public MyPagerAdapter(List<View> data, String[] titles) {
this.data = data;
this.titles = titles;
}
/**
* 返回数据源的长度
*/
@Override
public int getCount() {
return data.size();
}
/**
* 实例化Item 将View对象添加到容器中,并将View对象返回
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(data.get(position));
return data.get(position);
}
/**
* 销毁容器中的View对象
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(data.get(position));
}
/**
* 判断View是否与Object一致
*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
/**
*
* 根据 position 返回 title 的 方法
*
* 如果有需要的时候 重写 不需要的时候不需要重写
*/
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
就这样简单了