老王讲IT:Android应用开发第十二章

本文介绍了如何在Android开发中使用ViewPager实现左右滑动效果,包括创建多个布局文件、在代码中设置ViewPager、使用PagerAdapter管理视图以及处理Adapter方法如`onCreateViewHolder`、`getItem`和`isViewFromObject`。
摘要由CSDN通过智能技术生成

老王讲IT

Android开发————ViewPager

课程介绍:这节课我们来学习Android开发中的ViewPager,那么这个一个什么样的效果呢,大家可以看看我发的那个视频,可以进行一个左右滑动,那么这样的效果可以怎样的设置呢?首先我们这三个界面layout1,layout2,layout3这三个界面,实际上就是我们的三个布局,所以说我们首先要把它的三个布局给它实现,我们创建一个项目直接再res下边layout上给它创建:

实战:

然后取个名字:layout1,然后把里边的代码删掉,只留下最上边一行,然后写一个linearlayout容器,设置它的宽(match_parent),高(match_parent),方向(vertical):

然后再容器里边写一个textview,设置宽高为warp-content,然后设置字体大小为30sp,然后我们给一个文本内容,就是layout1:

我们为了让这几个之间有一定的区别,我们再容器里边给一个背景颜色:

然后我们直接复制一下就可以了(两个),把名字改一下,以及里边的参数,和颜色也改了:

这样的话layout1,layout2,layout3就实现了:

那么我们怎么去用这三个layout呢,首先我们肯定需要创建一个ViewPager,那么我们需要来到我们的android代码里面来创建,把原有的代码全部都删掉(只留下最上边一行)写一个容器linearlayout设置宽高属性,以及方向给vertical。

然后接着来写ViewPager:

在这块我们加载的是andoidx里边的viewpager,宽高的话我直接给一个match_parent,然后设置一个id:vp:

然后我们接下来再Java代码里面来获取一下我们的ViewPager:

那么我们的这一个viewpager它的布局怎么去填充呢?我们需要用到一个Adapter:

报错了别着急,alt+回车:

然后回车实现里面的方法

大家可以看到我们的pageradapter里面:

一般情况我们会实现这样的四个方法,目前来说我们刚刚不是实现了两个?然后我们每加一个的时候再去详细介绍了一下,那么我们的一个布局怎么添加进来呢?显然我们也是需要一个构造方法把这个数据给存放进来,所以说我们这一块的数据是啥呢?:

然后我们把构造方法写一下:

那么咱们下边这个getCount是个什么东西呢?可以看看图片,实际上就是viewPager里面有多少个view,所以说我这块返回的话就简单点点,直接返回我们的

这样就ok了,然后我们把数据传进来,那么这一个数据怎么传?来到我们的Java代码里面,首先要去添加数据的集合,所以说我们首先创建view,然后把这个view添加到集合里面去,所以说我们首先要把布局渲染出来,通过我们的layoutinflater:

然后alt+回车生成一个方法:

然后使用我们的方法名去进行一个渲染:

Alt+回车

然后再alt+回车:

然后复制一下:view2 view3 layout2 layout3

接下来我们把这三个view添加到我们的集合里面去:

我们现在就有了这个集合了,有了这个集合后是不是我们创建一个adadter

Alt+回车生成一个方法:

然后

好这样我们adapter这就设置了。然后来到我们的adapter里面还需要设置一下。首先我们得添加几个方法,就是图片上那几个instantiateltem这个方法:

Alt+insert

Ctrl+f搜索:

然后回车:

那么这一个构造方法里面它主要是有两个参数ViewGroup和我们的位置,那么这一个方法是干什么的呢?我们来看一下:

这里边大家可以看到一个key值,这一个key值也是非常关键的,在我们下一个isviewfromobject里面他会判断我们的这一个方法返回的key值与这一个页面视图是否相同,所以说我们先把第二个方法给它设置。那么对于这一个方法我们怎么做呢:

一般直接用我们的container.上addView:

添加我们的view那么view就是我们的mListView.get(position),然后 0 :

然后下边return返回的话一般我们直接返回view就行了,也就是我们mListView.get(position):

这样的话我们的这一个方法就完成了。

接下来就是我们的isViewFromObject,那么这一个方法的话主要就是判断他们两个是否相等,所以我们直接再return这块view == object就可以了:

然后再就是还有一个销毁的alt+inster:

Ctrl+f搜索:

然后回车

那么这个销毁里面的话就是删除我们这个不用的,那么在这块我们直接删掉下面这一行,然后container.removeView(mListView.get(position)),删除我们当前位置,也就是说我们那些不用的就通过这个destroyTtem去删除一下。

那么这样的话我们的这一个pagerAdapter就配置完了。然后我们运行一下看一下效果。

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值