首先来看谷歌官方API给出的使用场合的解释
Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of aPagerAdapter
to generate the pages that the view shows.
意思是这种布局可以允许用户左右滑动界面,前提你要实现PagerAdapter适配器去生成数据页面。
说明:ViewPager必须导入V4下的包
简单的步骤;使用v4包下的可左右滑动的控件,其显示的页面需要通过PagerAdapter适配器增加或移除页面
布局xml文件添加:
android:id="@+id/viewPager"
android:layout_width="match_parent"
/>
设置适配器:
//实例化PagerAdapter适配器
adapter=new WelcomePagerAdapter();
//设置ViewPager的适配器
vPager.setAdapter(adapter);
//设置移除UI的间隔大小
vPager.setOffscreenPageLimit(3); //默认为1,不能少于1,【建议】不要改变
//声明PagerAdapter子类,用于管理ViewPager中显示的View控件
class WelcomePagerAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO 返回显示页面的总大小
return views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO 获取指定位置的View(UI)并增加到ViewPager中,同时作为当前页面的数据返回
Log.d("debug", "instantiateItem---"+position);
container.addView(views.get(position));
return views.get(position); //作为当前页面的数据返回
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO 当前位置与ViewPager中正显示页面的位置的间隔超出一页面,需要将当前位置的页面移除
container.removeView(views.get(position));
Log.d("debug", "destroyItem---"+position);
}
@Override
public boolean isViewFromObject(View view, Object obj) {
// TODO 判断当前显示的页面的UI对象和数据对象是否一致
return view==obj;
}
}
类似的完整源码:http://download.csdn.net/detail/u010311220/9117279