本文不长,阅读大约五分钟

之前答应了星友去实现一个星球,这次带来的也是星球的一个页面的效果,想必很多人见过,就是列表悬浮的Item,我们来看下Gif效果图:

你可能感兴趣还有精华主题这两个Item是需要悬浮的,那么,我们该如何实现这种效果呢?其实很简单,这里教大家一种很方便的方法,继续往下看。

首先,我们要实现这个列表,这个列表的话,一个RecyclerView即可实现,不过Item比较多,我们来看下有多少层:

1.广告轮播层

2.悬浮层

3.感兴趣星球层

4.悬浮层

5.精华层

6.排行导航层

7.排行层

可想而知,这个适配器有多麻烦,那么我们一步步来实现吧,首先是定义Type

适配器类型的定义是为了更好的插入不同的Item,有些封装好的RecyclerView可以插入HeadView或者FootView实际上就是利用此原理,那么我们接下来往下看:

在onCreateViewHolder中,我们可以看到,根据不同的Type我创建了若干个ViewHolder,这也是为了下面的铺垫:

在onBindViewHolder中,我将数据一一绑定,这样只需要我们模拟一些数据,基本上就可以看到一个UI的效果了

但是我们现在还有非常重要的一个步骤没有实现,就是如何实现悬浮,正如标题所讲,我们要简单高效的实现它,市面上很多都是各种自定义RecyclerView或者自己定义View来处理,我这只是取巧的一种方式,可以看到:

可以看到,在这里我通过监听addOnScrollListener回调,来确定当前屏幕上可见的itme,如果可见item小于第一个悬浮,那么就隐藏否则就显示我们的悬浮bar,大致就是这个思路,如果到了该悬浮的bar的时候就把数据悬浮,其实最终的实现就是一个覆盖的布局,我们来看下:

所以可以看到,我们的mSuspensionBar就是一个相对布局,最终我们运行一下:

好了,到此,我们本篇完结了,需要源码的可点击阅读原文,欢迎加入我的星球【Hi Android】

进入星球你可以做什么?

1.带你学习Android

2.解决工作中的疑难杂症

3.一起探索程序员如何赚钱

4.初学者可配套视频辅导

5.有机会线下交流聚会

简单高效的实现知识星球悬浮滚动列表相关推荐

  1. 仿知识星球Android源码奉上

    高仿了一下Android版本的知识星球,但是并没有完全实现,也懒得实现了,各个功能都大同小异,我之前写过的文章如下: [如何实现知识星球列表拖拽功能] https://articles.zsxq.co ...

  2. 论文浅尝|简单高效的知识图谱表示学习负样本采样方法

    笔记整理 | 陈名杨,浙江大学在读博士生,主要研究方向为知识图谱表示学习 Introduction 研究知识图谱表示学习(KnowledgeGraph Embedding)可以解决当前很多应用的基本问 ...

  3. ICCV2021 Oral SimROD:简单高效的数据增强!华为提出了一种简单的鲁棒目标检测自适应方法...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨小马 来源丨我爱计算机视觉 ▊ 写在前面 本文提出了一种简单有效的鲁棒目标检测无监督自适应方法( ...

  4. 【知识星球】有没有网络模型是动态变化的,每次用的时候都不一样?

    欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题,今天给大家介绍一类网络结构,它是动态变化的,每一次使用的时候都不一样. 作者&编辑 | 言有三 1 训练时变化的网络结 ...

  5. 【知识星球】总有些骨骼轻奇,姿态妖娆的模型结构设计,不知道你知不知道,反正我知道一些...

    大家好,欢迎来到<知识星球>专栏,这个专栏专栏剖析有三AI知识星球的内容生态,今天的内容属于网络结构1000变板块. 作者&编辑 | 言有三 你大概已经见惯了基本的卷积结构,对残差 ...

  6. IT30知识星球—工作报告7步曲

    序: 躲在某一时间,想念一段时光的掌纹:躲在某一地点,想念一个站在来路也站在去路的,让我牵挂的人. 说明:300份+干货资料全部存放在我的"知识星球中",欢迎朋友们安装知识星球AP ...

  7. python数据分析做什么作业好_知识星球 | 说说我为什么要做『python数据分析』社群...

    过去一段时间,很多人会问我: "现在的工作没有前途,该如何转行?" "我知道数据时代已经来了,我该如何学习,不让自己落伍?" "数据分析适用于生活和工 ...

  8. 全新数据增强方式KeepAugment,简单高效提升模型精度!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Edison_G 来源丨计算机视觉研究院 导读 数据增强(DA)是深度学习训练过程中,必不可少的 ...

  9. chatgpt把脉知识星球

    昨天开通了chatgpt plus,20美金一个月,试试chatgpt4.0,针对知识星球这个产品,有如下对话,原文摘录(复制粘贴后稍微做了部分版式调整,内容无修饰) 我:知识星球 这个产品,请点评一 ...

最新文章

  1. 2440从sd卡启动wince
  2. 为Liferay Server分配Perm,Heap Size
  3. mysql如何处理图片吗_如何解决mysql插入图片后缀名问题?
  4. 循环结构_do-while循环
  5. 《JavaScript高级程序设计》笔记:JavaScript简介(一)
  6. shell查找命令大全
  7. linux读取.data文件,[20121227]v$datafile访问是从数据文件获取信息吗.txt
  8. 程序的图标无法改变_安卓微信7.0.7内测版发布,细节更新,小程序功能优化
  9. vue 打包之后不兼容ie_vue中使用的一些问题(IE不兼容,打包样式不生效)
  10. 谷歌Linux基金会等联合推出开源软件签名服务 sigstore,提振软件供应链安全
  11. mysql查询结果输出到文件
  12. oracle安装5.1,5.1 Oracle RAC的安装(5)
  13. Linux网络服务(network service)管理
  14. CANape操作指南
  15. 惠普服务器装centos 系统安装,hp 服务器安装linux系统安装
  16. 手机视频投屏到电视或投影仪
  17. win10 家庭版使用远程桌面:win系统打开端口 + RDP Wrapper使用
  18. 中国杀软套路深:CIA怼遍全世界竟然干不过它
  19. zcu102网口不通
  20. KEIL 不使用microlib 报错__stdin __stdout重复定义

热门文章

  1. 操作系统之银行家算法解析
  2. 待办事项下拉html代码,一款简洁易用的HTML5当日待办事项列表
  3. mysql option 类型_mysql之数据类型与表操作
  4. Adobe au 修改语言设置
  5. 微信公众号如何关联答题活动小程序
  6. 日语常用口语(日常总结)
  7. 详解从网络IO到IO多路复用
  8. 基于javaweb的在线电子书小说阅读系统(java+layui+springboot+mysql+html+ftp)
  9. Vue修炼系列教程 - 元婴篇1
  10. java单机游戏热血江湖_热血江湖V8.0单机版游戏源码