Android : ViewPager+RecyclerView的联动效果
来源:互联网 发布:顶级域名的两大类 编辑:程序博客网 时间:2024/06/05 20:28
今天有个需求,上面是一组图片,下面也是一组图片,要求上面和下面的图片都能滑动,然后2者之间能联动,通俗讲就是上面的选中了下面也要跟着滑到那个图片,然后下面的图片滑动了上面也要跟着选中那个图片,所以产生了联动效果。
类似这样的,然后我就开始想了 上面一个recyclerview 下面一个viewpager 好像可以哦,然后就开始啪啦啪啦的写了,先把能看到的先写出来(viewpager动态添加图片,具体的话可以自行百度,这个比较简单,然后稍微麻烦点的是recyclerview的横向设置,实际上也不难,就是设置横向的layoutmanager而已),上面放了几张图片,下面也是放了几张图片,然后就想怎么联动呢?
viewpager有个addOnPangeChangeListener接口。主要包括了3个方法,我们这边只需要用到里面的onPageSlected方法有个position可以获取到当前是哪个图片,然后如何联动到recyclerview呢,想了挺久的,然后突然想起来recyclerview有个smoothScrollToPosition方法可以控制滑到到哪个position上,想到这又是啪啦啪啦的写,这里贴上代码:
然后运行了下,发现可以了,可以在下面的viewpager滑动然后控制上面的recyclerview滑到对应的图片了,哈哈!但是,先别激动,还有个需求呢,就是可以在recyclerview里面通过点击图片然后下面的viewpager可以滑到对应的图片上,这个就比较有思路了,首先获取图片的点击事件,(recyclerview的点击事件为什么要自己写呢,哎),啪啦啪啦,写上recyclerview的点击事件(自己写个接口然后回调apapter里的点击事件,不会的自行百度),然后通过viewpager的setCurrentItem设置回调的position然后在滑到对应的图片上,运行一下,效果不错哦,好了,大功告成!
但是,那边又提需求了,在上面的图片上如果被选中要有个边框效果,这样才知道你被选中了(激动了,20多年了终于被选中了。),然后这个感觉也不难,就是在recyclerview的item里面的图片给个背景边框呗,稍微要注意的是要选中了才有效果,所以这边需要判断下,看是否被选中,这边又来到了viewpager的addOnPageChangerListener接口里的方法,这里可以知道下面那个图片被选中了,然后因为关联了上面了,所以也就能知道上面那个图片被选中了,所以加上代码:
这里的setBg()是我在适配器里写的方法,为了是能在adapter里获取被选中图片的position:
这里在onBindViewHolder里面进行选中判断是否有边框,然后设置边框(忽略我的命名,为了测试嘛),注意的是判断的时候选中的时候设置了边框,然后在没有选中的地方也要设置个null背景,以防止出现复用问题(ListView就是有这个问题,需要注意!!)。
好了,到这边差不多需求已经完成了,这边只是为了实现效果,所以一些细节我就没去考虑了,有时间再去完善了。好了下班了!!
- Android : ViewPager+RecyclerView的联动效果
- ViewPager+Tablayout的联动效果
- ViewPager+RecyclerView联动
- Android-->如何将RecyclerView打造成ViewPager的效果
- ViewPager与小圆点的联动效果
- TabLayout和ViewPager的联动效果实现
- 联动滑动效果及不同Item效果的RecyclerView
- ToolBar与RecyclerView联动效果
- Material Design recyclerview+floatingactionbutto实现联动的效果
- Android 中使用 RecyclerView + SnapHelper 实现类似 ViewPager 效果
- Android 中使用 RecyclerView + SnapHelper 实现类似 ViewPager 效果
- Android中使用RecyclerView + SnapHelper实现类似ViewPager效果
- Android中使用RecyclerView + SnapHelper实现类似ViewPager效果
- HorizontalScrollView和ViewPager联动效果
- Tablayout 加 ViewPager 联动效果
- 仿网易客户端的viewpager和头部的联动效果
- Android ViewPager的动画效果
- 导航栏联动效果( HorizontalScrollView+ViewPager)
- pptpd vpn手动分配IP部分用户无法上网
- HDOJ 4704 Sum
- Spring Boot学习总结(3)——SpringBoot魅力所在
- okhttp3实现注册登陆
- 数组中奇偶元素分离算法
- Android : ViewPager+RecyclerView的联动效果
- session什么情况下会改变
- string检索
- ORB-SLAM2搭建详细过程
- hdu 1711 Number Sequence (kmp)
- The 'Apple Developer Program License Agreement' has been updated. In order to access certain members
- RxJava中create源码
- Ubuntu虚拟机NAT模式无法上网解决方案
- Java泛型应用之打造Android万能ViewHolder-超简洁写法