看下效果图, 底部在给出demo地址

如果想实现类似拼多多的商品联动也是可以的,修改方法即可 下面看下实现方法

几个参数需要知道

findFirstVisibleItemPosition 显示界面第一个position
findLastVisibleItemPosition 显示界面最后一个position
scrollToPositionWithOffset 跳转到指定位置

具体代码如下

public class MainActivity extends AppCompatActivity {private RecyclerView top_recy;RecyclerViewAdapter topAdapter;List<Integer> topList = new ArrayList<>();private RecyclerView bottom_recy;RecyclerViewAdapter bottomAdapter;List<Integer> bottomList = new ArrayList<>();int currentPosition = 1;private int[] img ={R.mipmap.one,R.mipmap.ele,R.mipmap.two,R.mipmap.et,R.mipmap.three,R.mipmap.nine,R.mipmap.four,R.mipmap.seven,R.mipmap.five,R.mipmap.ten};@RequiresApi(api = Build.VERSION_CODES.M)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);top_recy = findViewById(R.id.hor_recy);bottom_recy = findViewById(R.id.hor_max_recy);for(int i=0;i<img.length;i++){topList.add(img[i]);}top_recy.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false));topAdapter = new RecyclerViewAdapter(this,R.layout.hot_item_layout,topList);top_recy.setAdapter(topAdapter);topAdapter.setCallBack(new RecyclerViewAdapter.CallBack() {@Overridepublic <T> void convert(IViewHolder holder, T bean, int position) {ImageView horImageView = (ImageView) holder.getView(R.id.hor_item_img);Glide.with(MainActivity.this).load(bean).into(horImageView);}});top_recy.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);//获得recyclerView的线性布局管理器LinearLayoutManager topManager = (LinearLayoutManager) top_recy.getLayoutManager();LinearLayoutManager bottomManager = (LinearLayoutManager) bottom_recy.getLayoutManager();//获取滚动时的第一条展示的positioncurrentPosition = topManager.findFirstVisibleItemPosition();//打这些log 是为了查看下表,刚开始话滑动不好,就是下表出现了问题,配图的时候注意一下呢Log.i("-----firsttop", String.valueOf(currentPosition));Log.i("------firstbottom", String.valueOf(bottomManager.findFirstVisibleItemPosition()));Log.i("------lastbottom", String.valueOf(bottomManager.findLastVisibleItemPosition()));if (bottomManager.findFirstVisibleItemPosition()>=currentPosition){//跳到并行位置,一般商城类商品类跳转顶部的使用这个方法
//                    bottomManager.scrollToPositionWithOffset(currentPosition,0);bottom_recy.smoothScrollToPosition(currentPosition);}else if (bottomManager.findLastVisibleItemPosition() < currentPosition) {
//                    bottomManager.scrollToPositionWithOffset(currentPosition, 0);bottom_recy.smoothScrollToPosition(currentPosition);}bottomAdapter.notifyDataSetChanged();}});for(int i=0;i<img.length;i++){bottomList.add((img[i]));}bottom_recy.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false));bottomAdapter = new RecyclerViewAdapter(this,R.layout.max_item_layout,bottomList);bottom_recy.setAdapter(bottomAdapter);bottomAdapter.setCallBack(new RecyclerViewAdapter.CallBack() {@Overridepublic <T> void convert(IViewHolder holder, T bean, int position) {ImageView maxImage = (ImageView) holder.getView(R.id.max_image);Glide.with(MainActivity.this).load(bean).into(maxImage);}});bottomAdapter.setOnItemClickListner(new RecyclerViewAdapter.OnItemClickListner() {@Overridepublic void onItemClickListner(View v, int position) {LinearLayoutManager linearLayoutManager = (LinearLayoutManager) top_recy.getLayoutManager();linearLayoutManager.scrollToPositionWithOffset(position,0);  // 定位到某个item,并将其置顶显示}});findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,RecyActivity.class));}});findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,GridActivity.class));}});}
}

布局适配器就不写了,

demo地址,如果帮助了您希望给个star

2个RecyclerView 联动相关推荐

  1. 双重ScrollView,RecyclerView联动实例

    最近收到一个需求,如图,大家一看,不就是一个简单的表格吗,RecyclerView就搞定了 我一开始也是这么想的,但是当我继续听下去 需求是左边党支部栏目只能上下滑动,之后联动右边下方表格一起上下滑动 ...

  2. “京东金融”主页效果 RecyclerView联动

    先上效果图吧: 第一个想到的实现方式是上面使用horizontalScrollview,下面使用Viewpager,经过尝试之后发现二者API有限,不能达到理想效果.几经折腾,最后上下都使用了自定义的 ...

  3. 【Android 仿微信通讯录 导航分组列表-下】自定义View为RecyclerView打造右侧索引导航栏IndexBar

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52420706 本文出 ...

  4. 红橙Darren视频笔记 Behavior的工作原理源码分析

    主要coordinatorlayout的代码来自coordinatorlayout-1.0.0-sources.jar 本文从源码介绍 CoordinatorLayout 的 behavior 怎么工 ...

  5. Android 仿美团选择城市、微信通讯录、饿了么点餐列表的导航悬停分组索引列表

    SuspensionIndexBar 项目地址:mcxtzhang/SuspensionIndexBar 简介:快速实现分组悬停.右侧索引导航联动 列表. 如 美团选择城市界面,微信通讯录界面.饿了么 ...

  6. android 卡片放大变详情页,ZoomHeader 神交互!饿了么 imageView 放大变为详情页 @codeKK Android开源站...

    不是共享元素!不是共享元素!不是共享元素!重要的话说三遍.共享元素不可以随手指移动的. 先吐槽下饿了么.不提示左右可以滑动.我还是无意中发现的.不提示我怎么知道可以滑动?? 这是一个模仿饿了么详情页的 ...

  7. Android自定义字母索引

    Android字母索引这个功能还是很常见的,例如:电话联系人,城市选择等一些功能都会用到.轮子已造好直接使用, Github源码 . 先看效果图: 自定义分析: 1.自定义View用 Paint 画笔 ...

  8. 自适应简约风格个人主页源码

    文章目录[隐藏] 源码介绍 源码截图 源码介绍 一款有音乐,有花瓣飘落,有看板娘,还有轮播图,轮播图可以添加跳转链接,非常实用的个人介绍导航页面,大家需要的自行下载! 源码截图 附 件 下 载 文件名 ...

  9. RecyclerView双列表联动

    双列表联动效果如下: 以上,是博主根据鸿洋大神的玩Android开放的API做的一个客户端,其中导航界面使用了双列表联动来展示数据. 一.前期基础知识储备 1.使用强大的开源项目BRVAH装载两个列表 ...

最新文章

  1. 小程序-wepy学习
  2. 非洲瓜哇JAVA布的特点_java语言的基本特性以及编程细节
  3. QT的QSignalBlocker类的使用
  4. ASP.NET Web API 应用教程(一) ——数据流使用
  5. HTTP响应报文与工作原理详解
  6. keil 快捷键_KEIL 那些编辑技巧与方法
  7. java删除相对路径文件夹_Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录...
  8. JAVA学习笔记(五)
  9. 升级Xcode之后VVDocumenter-Xcode不能用的解决办法
  10. 程序员必备算法——算法相关链接总结
  11. 【Linux-shell】shell脚本基础语法练习
  12. 能被搜索引擎收录的Blog才是好Blog
  13. Win10 封装报错处理
  14. 视觉组学习内容:Zhang-Suen骨架提取算法
  15. r语言软件GDINA_认知诊断分析系统(flexCDMs)设计及其实现
  16. android麦克风被禁用怎么办,为什么微信麦克风被禁用?如何开启?
  17. Apple Watch发售在即 苹果门店大变脸
  18. CSGO控制台与常用指令
  19. 解决麒麟V10上传文件乱码问题
  20. 解决 Android N 7.0 上 报错:android.os.FileUriExposedException

热门文章

  1. RSA签名算法,计算调用加密报文,安全传输
  2. 2022-2028年中国抗菌玻璃行业市场研究及前瞻分析报告
  3. 2022-2028年中国橡胶板的制造行业发展战略规划及投资方向研究报告
  4. fatal error all goroutines are asleep - deadlock!
  5. python读取word
  6. linux sh 改 cmd
  7. python pycharm 包 安装问题
  8. Python3.8.5最新版安装教程(含老版本卸载教程)
  9. 在C++中加载TorchScript模型
  10. NVIDIA FFmpeg 转码技术分析