ViewPager的三种适配器:
一、PagerAdapter的使用:
public class MyPagerAdapter extends PagerAdapter {
private List<View> mListView;
private List<String> mTabList;
public MyPagerAdapter(List<View> listView, List<String> tabList) {
this.mListView = listView;
this.mTabList = tabList;
}
/**
* 返回页卡数量
*/
@Override
public int getCount() {
return mListView.size();
}
/**
* 判断View是否来自于对象
*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
/**
* 实例化一个页卡
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mListView.get(position));
return mListView.get(position);
}
/**
* 销毁一个页卡
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListView.get(position));
}
/**
* 返回页卡标题
*/
@Override
public CharSequence getPageTitle(int position) {
return mTabList.get(position);
}
}
二、FragmentPagerAdapter的使用:
public class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
public MyFragmentAdapter(List<Fragment> fragmentList, FragmentManager fm) {
super(fm);
this.fragmentList = fragmentList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
三、FragmentStatePagerAdapter
四、ViewPager的监听事件OnPageChangeListener
五、ViewPager的一些常用方法
1.指定到某个具体的页面 viewPager.setCurrentItem(2);
2.ViewPager的页面懒加载 viewPager.setOffscreenPageLimit();
六、项目下载地址:
http://download.csdn.net/detail/daidaishuiping/9774789