ViewPager基本用法

本文详细介绍如何使用ViewPager结合自定义Adapter实现图片轮播效果。包括添加ViewPager控件、创建及重写PagerAdapter方法、实例化Adapter对象等步骤。

目录

1 添加ViewPager

2 创建Adapter类

3 在Adapter类中准备数据

4 重写适配器中的方法

4.1 重写getCount

4.2 重写isViewFromObject

4.3 重写instantiateItem

4.4 重写destroyItem

4.5 实例化

5 回到Avtivity,实例化适配器对象

6 主运行代码


用法:数据ImageView+自定义适配器+ViewPager控件

1 添加ViewPager

在Activity的XML布局文件中添加一个控件——ViewPager。

在Java代码中找控件ViewPager。

2 创建Adapter类

继承PagerAdapter类,重写必须重写的两个方法getCount和isViewFromObject。

并ctrl+o,重写两个生成控件和销毁控件的两个方法。

instantiateItem和destroyItem。

3 在Adapter类中准备数据

此处我们只展示一个图片ImageView。

即List<ImageView>。

4 重写适配器中的方法

4.1 重写getCount

获取列表中元素的个数。

public int getCount(){
    return mImageViewList==null?0:mImageViewList.size();
}

4.2 重写isViewFromObject

判断这个View和Object是不是同一个东西。而这个Object是什么,就是下一个要重写的instantiateItem方法的返回值View就是这一页

public boolean isViewFromObject(View view,Object object){
    return view==object;
}

4.3 重写instantiateItem

生成一页,也就是ImageView,也就是List列表中的一项。

而整个List就相当于一个ViewPager。

public Object instantiateItem(ViewGroup container,int position){
    //从列表中获取元素
    ImageView imageView=mImageViewList.get(position);
    //把此元素放入ViewGroup中
    container.addView(imageView);
    //返回此元素
    return imageView;
}

4.4 重写destroyItem

当从这一页划到另外一页时,前面那一页应该被销毁。

public void destroyItem(ViewGroup container,int position,Object object){
    super.destroyItem(container,position,object);
    //从ViewGroup中移除
    container.removeView((View)object);
}

4.5 实例化

public Adapter(List<ImageView> imageViewList){
    mImageViewList=imageViewList;
}

5 回到Avtivity,实例化适配器对象

准备数据并传入。

private void intiData(){
    ImageView imageView1=new ImageView(this);
    imageView1.setImageResource(R.id.xxx);
    
    ImageView imageView2=new ImageView(this);
    imageView2.setImageResource(R.id.xxx);

    ImageView imageView3=new ImageView(this);
    imageView3.setImageResource(R.id.xxx);

    mImageViews=new ArrayList<>();
    mImageViews.add(imageView1);
    mImageViews.add(imageView2);
    mImageViews.add(imageView3);
}

6 主运行代码

先进行第五步的数据初始化。

然后创建适配器对象。

然后给ViewPager设置适配器。

然后有必要的时候给ViewPager添加监听addOnPageChangeListener(new ViewPager.OnpageChangeLisgener()),有三个回调方法,最常用的是第二个onPageSelected(),

就是划定到某一页就会触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七qi_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值