1.导入android-support-v4.jar包,可以在search.maven.org搜索下载
2.创建一个布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 这个是ViewPager -->
<android.support.v4.view.ViewPager
android:id="@+id/main_viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 这个是标题,必须设置的属性为:android:layout_gravity -->
<android.support.v4.view.PagerTitleStrip
android:id="@+id/main_pagerTitleStrip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
</LinearLayout>
3.创建一个activity使用:
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
public class TestViewPagerActivity extends Activity {
private ViewPager viewPager;
// 视图集合
List<View> views;
// 标题集合
List<String> titles;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 声明控件
viewPager = (ViewPager) this.findViewById(R.id.main_viewPager);
// 填充视图
views = new ArrayList<View>();
views.add(this.getLayoutInflater().inflate(R.layout.a, null)); // 第一页
views.add(this.getLayoutInflater().inflate(R.layout.b, null));
views.add(this.getLayoutInflater().inflate(R.layout.c, null)); //最后一页
// 填充标题
titles = new ArrayList<String>();
titles.add("1");
titles.add("2");
titles.add("3");
// 设置适配器,类型PagerAdapter
viewPager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// 改变为相互比较
return arg0 == arg1;
}
@Override
public int getCount() {
// 返回视图的个数
return views.size();
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// 当视图撤销的时候在ViewPager中删除这个视图
((ViewPager) container).removeView(views.get(position));
}
@Override
public CharSequence getPageTitle(int position) {
// 返回标题
return titles.get(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 填充视图
((ViewPager) container).addView(views.get(position));
// 放回当前position的视图
return views.get(position);
}
});
}
}
a 布局文件距离,其它类似:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>