Android引导页制作及ViewPager知识总结(二)

来源:互联网 发布:csgo枪支数据 编辑:程序博客网 时间:2024/05/01 13:06

自定义PagerAdapter


简介

ViewPager是一个需要绑定Adapter的控件,这篇博客主要来归纳总结PagerAdapter的几个方法以及自定义PagerAdapter。

四个必须重写的函数

我建议你先看一下这篇文章,ViewPager四大函数
这篇文章,从最原始的官方文档入手,看了之后基本能够理解PagerAdapter的四个必须重写的函数,下面还是进行归纳一下。

  • instantiateItem(ViewGroup container, int position)
    这个应该是这四个函数中最核心的一个,它的功能是创建指定位置的页面视图,基本上代码都写在这里面。
  • destroyItem(ViewGroup container, int position,Object object)
    这个函数是删除指定位置的视图,一般我们可以这样写,其中mImages是容器:
public void destroyItem(ViewGroup container, int position,Object object) {                container.removeView(mImages.get(position));            }

之前在博客上看到有牛人还用了这两个

instantiateItem(View view, int position)

destroyItem(View view, int position,Object object)

这两个其实已经弃用了。

  • getCount():这个函数用来统计视图页数。

  • isViewFromObject(View view, Object object)
    对于这个函数,我们一般的写法比较固定:

return view == object;

自定义PagerAdapter

只要理解了上面四个函数,自定义PagerAdapter应该不是问题了。我们新建一个myViewPagerAdapter.java文件,并定义一个视图(以ImageView为例),重写PagerAdapter的构造函数和刚才的四个函数,就可以了。代码如下:

package com.myread;import java.util.ArrayList;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;public class myViewPagerAdapter extends PagerAdapter {    //需要存入的视图,这里以ImageView为例    private ArrayList<ImageView>views;    //实现带一个参数的构造方法,把views存进去    public myViewPagerAdapter(ArrayList<ImageView> views) {        this.views = views;    }    //视图个数    public int getCount() {        if(views!=null){            return views.size();        }        return 0;    }    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView(views.get(position));    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        container.addView(views.get(position));        return views.get(position);    }}

下一篇,将来谈谈如何加入底部指示小点。

0 0
原创粉丝点击