【Android 基础】 ViewPager

ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样,始终保持3个View在内存中,默认初始化下一个View:

使用方法:

1. 布局文件中加入

<android.support.v4.view.ViewPager      
        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. 重写适配器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;//官方提示这样写  
        }  
    }  

注意:

实现一个PagerAdapter,你必须至少覆盖以下方法:

  • instantiateItem(ViewGroup, int)
  • destroyItem(ViewGroup, int, Object)
  • getCount()
  • isViewFromObject(View, Object)

如果ViewPager与fragment结合使用,则需要适配器实现FragmentStatePagerAdapter

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值