布局类全路径:android.support.v4.view.ViewPager
小技巧:导viewpager的源码
1、在libs下面写个配置文件:名字必须一致
2、内容:
src=D:/android_java_devlope/adt-bundle/AndroidSDK/extras/android/support/v4(sdk中v4包路径)
3、重启eclipse
ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。
1)ViewPager类直接继承了ViewGroup类,所以它是一个容器类,可以在其中添加其他的view类。
2)ViewPager类需要一个PagerAdapter适配器类给它提供数据。
3)ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用
监听:
addOnPageChangeListener(new OnPageChangeListener(){
@Override
publicvoid onPageSelected(int position) {
//页面被选中
}
@Override
public voidonPageScrolled(int position, float positionOffset, intpositionOffsetPixels) {
//页面滑动
// position当前页面的位置
// positionOffset页面滑动时的偏移百分比
// positionOffsetPixels页面滑动过程中像素位置,注意范围,建议输出自己看
}
@Override
publicvoid onPageScrollStateChanged(int state) {
//
}
});
适配器:
class myPager extends PagerAdapter {
//如果不是内部类,需要写构造方法将集合(承载数据)和context(实例化布局)//通过构造方法传进来
@Override
public int getCount(){
return list.size();//承载页面对象的集合大小
}
@Override
public boolean isViewFromObject(Viewview, Object object) {
return view == object;//判断是否由对象生成界面
}
@Override
public Object instantiateItem(ViewGroupcontainer, int position) {
//初始化一个view对象
container.addView(view);//添加到ViewPager中,否则不成功,必须有这步。
return view;
}
@Override
public void destroyItem(ViewGroupcontainer, int position, Object object) {
container.removeView((View)object);//移除上一个页面视图,一般都这么写
}
}