ViewPager可以用来制作导航页面以及滑动页面,实现方法有如下几个步骤:
1.声明一个ViewPager对象:
private ViewPager mviewPager;
2.在界面中找到该组件:
mviewPager= (ViewPager) findViewById(R.id.id_viewPager);
3.像ListView一样它同样需要一个适配器因此初始化一个适配器:
private PagerAdapter mAdapter;
4.创建一个匿名适配器:
mAdapter=new PagerAdapter() { @Override public Object instantiateItem(ViewGroup container, int position) { //这个方法,return一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中,我这里加载了一个列表组件命名为mView View view=mViews.get(position); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { //这个方法,是从ViewGroup中移出当前View container.removeView(mViews.get(position)); } @Override public int getCount() { //getCount()这个方法是获取当前窗口数量 return mViews.size(); } @Override public boolean isViewFromObject(View view, Object object) { //用于判断是否由对象生成界面官方建议写为view==object return view==object; } };
5.添加适配器到ViewPager:
mviewPager.setAdapter(mAdapter);
6.为ViewPager设置监听器来实现滑动页面:
mviewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //这个用于实现页面改变后的配置可以使当前页面的图标点亮 int currentItem= mviewPager.getCurrentItem(); } @Override public void onPageScrollStateChanged(int state) { } });
7.也可以通过点击不同的按钮来实现现实哪一个页面:
switch (view.getId()) { //这里用switch判断点击的是哪个按钮 //setCurrentItem(int index)方法主要用来制定初始化的页面,例如加入3个页面通过setCurrentItem(0)制定第一个页面为当前页面 case R.id.id_tab_mgs: mviewPager.setCurrentItem(0); break; }