ViewPager的使用

1、ViewPager 是什么??

它是android提供的一个控件,是在android3.0以后出现的,google为了兼容低版本在SDK的android-support-v4.jar引入了ViewPager 的API。所以在3.0以前的版本中使用ViewPager 我们需要在项目中导入android-support-v4.jar 。我们可以做很多事情,从最简单的导航,屏幕间的切换到页面菜单等等 。

2、如何使用

与LisstView类似,我们也需要一个适配器,他就是PagerAdapter 。。ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。分三个步骤来使用它:

在住布局文件里加入

<android.support.v4.view.ViewPager    这个组件,注意这个组件是用来显示左右滑动的界面的,如果不加载xml布局文件,他是不会显示内容的。  
        android:id="@+id/viewpager"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center" >  

2.加载要显示的页卡,也就是数据源

LayoutInflater lf = getLayoutInflater().from(this);  
        view1 = lf.inflate(R.layout.layout1, null);  
        view2 = lf.inflate(R.layout.layout2, null);  
        view3 = lf.inflate(R.layout.layout3, null);  

        viewList = new ArrayList<View>();// 将要分页显示的View装入数组中  
        viewList.add(view1);  
        viewList.add(view2);  
        viewList.add(view3);  

3 、在Activity里实例化ViewPager组件,并设置它的Adapter(就是PagerAdapter,方法与ListView一样的),在这里一般需要重写PagerAdapter。

public class MyViewPagerAdapter extends PagerAdapter{  
        private List<View> mListViews;  

        public MyViewPagerAdapter(List<View> mListViews) {  
            this.mListViews = mListViews;//构造方法,参数是我们的页卡,这样比较方便。  
        }  

        @Override  
        public void destroyItem(ViewGroup container, int position, Object object)   {     
            container.removeView(mListViews.get(position));//删除页卡  
        }  


        @Override  
        public Object instantiateItem(ViewGroup container, int position) {  //这个方法用来实例化页卡         
             container.addView(mListViews.get(position), 0);//添加页卡  
             return mListViews.get(position);  
        }  

        @Override  
        public int getCount() {           
            return  mListViews.size();//返回页卡的数量  
        }  

        @Override  
        public boolean isViewFromObject(View arg0, Object arg1) {             
            return arg0==arg1;//官方提示这样写  
        }  
    }  
大同小异,有一定很重要,就是我们需要重写哪些方法。从上面的图片可以看到,ViewPager的适配器是PagerAdapter,它是基类提供适配器来填充页面ViewPager内部,你很可能想要使用一个更具体的实现,如FragmentPagerAdapter或FragmentStatePagerAdapter。在这里需要说明一下,其实ViewPager应该和Fragment一起使用,至少谷歌官方是这么想的,但是在3.0之下,我们没有必要这么做。下面要注意,当你实现一个PagerAdapter,你必须至少覆盖以下方法:
instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)

声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息

原文作者: 皇马船长

原文地址: http://my.eoe.cn/cainiao1/archive/3901.html


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