ViewPager使用方法详解

 
 

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;
}

你可能感兴趣的:(android,viewpager,界面)