所有资讯
微信公众号
微信小程序
手机App

Android 的PagerAdapter用法详解

浏览量:794    日期:2016-11-06 22:26
PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。其实PagerAdapter就是ViewPager提供的一个适配器,方便我们对各个View进行控制。那ViewPager又是什么呢?它是实现左右两个屏幕平滑地切换的一个类,具体的自己百度google…关于ViewPager的用法好多。

PagerAdapter用法


PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。


关于PageAapter的描述,原文是这样的:Base class providing the adapter to populate pages inside of a ViewPager.  You will most likely want to use a more specific implementation of this, such as FragmentPagerAdapter or FragmentStatePagerAdapter。


其实PagerAdapter就是ViewPager提供的一个适配器,方便我们对各个View进行控制。那ViewPager又是什么呢?它是实现左右两个屏幕平滑地切换的一个类,具体的自己百度google…关于ViewPager的用法好多。

 

要使用PagerAdapter,首先要继承PagerAdapter类,然后至少覆盖以下方法

instantiateItem(ViewGroup, int) 

这个方法,return一个对象,这个对象表明了PagerAdapter适配器选择哪个对象*放在当前的ViewPager中

destroyItem(ViewGroup, int, Object)

这个方法,是从ViewGroup中移出当前View

 getCount() /**这个方法,是获取当前窗体界面数


 isViewFromObject(View, Object) 这个方法,在帮助文档中原文是could be implemented as return view == object,

*也就是用于判断是否由对象生成界面**/


public class MyViewPagerAdapter extends PagerAdapter{ 


        private List mListViews;  

          

        public MyViewPagerAdapter(List 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;//官方提示这样写  

        }  

    } 


 
成为您更加专业的技术合伙人
服务热线:15165022080
加微信号:15165022080
客服QQ:1828087588、1421667633
电子邮箱:1828087588@qq.com
 
软件开发咨询:15165022080