首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 中RecyclerView顶部刷新实现详解

Android 中RecyclerView顶部刷新实现详解 1. RecyclerView顶部刷新原理 RecyclerView顶部刷新实现通常都是在RecyclerView外部再包裹一层布局。...也就是说,外层布局中包含两个child,一个顶部刷新View,一个RecyclerView顶部刷新View默认是隐藏不可见。...在外层布局中对滑动事件进行处理,当RecyclerView滑动到顶部并继续下滑时候,根据滑动距离决定顶部刷新View显示。当滑动距离超过某个设定时候,执行顶部刷新操作。 2....setOnRefreshListener()方法用来设置顶部刷新事件监听,当需要执行顶部刷新时会调用listeneronRefresh()方法,来获取最新数据。...setRefreshing()方法用来设置顶部刷新状态。当数据获取完成后,需要调用方法表示刷新完成。

1.1K20

RecyclerView 居然还能实现吸底效果

测量RecyclerView内容高度实现 这种方式很直观,我们先获取RecyclerView控件高度h1,设置完数据后再获取RecyclerView内容高度h2,然后将h1h2进行比较: ①如果h1...我们在RecyclerView控件上方,盖一个布局,这个悬浮布局实现要和Adapter中Footer布局实现一样。 具体实现方式 接着我们看下如何实现。...具体分为如下几个步骤: ①将RecyclerView布局修改为RelativeLayouot,在RelativeLayouot底部、RecyclerView上方添加一个Footer布局。...②让Adapter支持两种布局,普通Item和Footer布局 ③在给RecyclerView设置完数据后,获取RecyclerView控件高度h1和RecyclerView内容高度h2 ④如果h1...当某个Item底部RecyclerView底部重叠时,lastView跟lastVisibleView就是同一个了,具体如下图: ?

2.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

NestedScrollView 嵌套 ListView 实现滑动折叠效果

当我们引入RecyclerView时候,恰好是压死骆驼最后一根稻草,故不得不采用其他方案来代替RecyclerView 和 CollapsingToolbarLayout实现折叠效果。...android:fitsSystemWindows,经本人代码测试,表示CollapsingToolbarLayout上边界是否扩展到statusbar,这里如果想使用透明statusbar,这里更新下应该该布局布局该属性为...true,不过这里兼容性还是存在问题,特别是android 4.4版本折叠布局透明statusbar,不知道改为有没更好方式。...enterAlwaysCollapsed - 当你View已经设置minHeight属性又使用标志时,你View只能以最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。...题外话3 23.2.0中在CoordinatorLayout中使用Toolbar ,toolbar无法顶部对齐,即顶部存在垂直间距。

3.3K50

淘宝开源库VLayout实践

VLayout是什么,说白了就是用一个原生RecycelerView加上VLayout来实现在一个页面上比较复杂布局并且有一个比较好复用,在RecyclerView里同时有GridLayout布局,.../宽度 FixLayoutHelper: 固定布局,始终在屏幕固定位置显示 ScrollFixLayoutHelper: 固定布局,但之后当页面滑动到该图片区域才显示, 可以用来做返回顶部或其他书签等...LinearLayoutHelper(); //设置间隔高度 linearLayoutHelper.setDividerHeight(5); //设置布局底部下个布局间隔...img5.PNG ScrollFixLayoutHelper继承自FixLayoutHelper,不同是showType来决定这个布局Item是否显示,可以用来做一些返回顶部之类按钮, SHOW_ALWAYS...Context context){ OnePlusNLayoutHelper onePlusNLayoutHelper=new OnePlusNLayoutHelper(); //设置布局底部下个布局间隔

1.7K20

嵌套滑动通用解决方案--NestedScrollingParent2

京东首页 这是京东首页,忽略顶部顶部,大致理解视图结构就是:最外层为多布局RecyclerView,最后一个item是tabLayout+ViewPager,ViewPager每个fragment...这是可行,但是在tabLayout滑动到顶部后,必须抬起手指,重新滑动,内层RecyclerView才能继续滑动。这是为啥呢?...所以按照正常处理滑动冲突思路处理--当tab没到顶部时,parent拦截事件,tab到顶部时 parent就不拦截事件,但是由于手指没抬起来,所以这一事件序列还是继续给parent,不会到内部RecyclerView...通常我们要自行手动处理就是RecyclerView作为嵌套滑动子view情况。NestedScrollView一般直接作为根布局用来解决嵌套滑动。...作者最后建议使用RecyclerView布局。 但其实在真实应用中,可能 头部 和 列表 数据来自不同接口,当列表数据请求失败时要展示缺省图,但头部还是会展示。

3.5K30

关于RecyclerView你知道不知道都在这了(上)前言目录正文

LayoutManager RecyclerView support 包里默认提供了三个 LayoutManager,分别是下列三个,可用于实现大部分场景布局需求:线性布局、网格布局、瀑布流布局等等...如果 RecyclerView 高度不足以让所有行都显示出来,那么就会出现 item 重叠现象。...这就是在 match_parent 下表现,至于 wrap_content 则完全根据 item 设定宽高来考虑了,不会再有自动分配剩余空间或者 Item 重叠之类工作了。...,也许它并不是处于当前屏顶部或最底部,就像上图日志中 position=7 item,它虽然是最后完全可见 item,但并不是位于最底部,最底部是 6 item。...那么,从调用了 notifyDataSetChanged() 到界面刷新这之间就会存在一定时间差,在这段时间内,数据源界面呈现 Item 就不是一致性了,如果这时候有需要区分实际数据源 Item

3K60

RecyclerView一些开源LayoutManager

RecyclerView 自定义 LayoutManger,可以实现不同布局格式混排,也是 Tangram 框架基础模块。...CSS中Flexbox布局效果( 具体可看:https://www.w3cplus.com/css3/a-guide-to-flexbox-new.html ),原本并不支持RecyclerView,...; //子view距离屏幕最左偏移,也可以理解为第一个子view在初始状态下距离屏幕左侧位移,默认居中 protected int startLeft; //子view距离屏幕顶部位移,默认居中...() - startLeft; } //当view属性等于targetOffset时,view基于初始位置x坐标,一般返回targetOffset @Override protected int...itemView.getLeft()-startLeft; } //滑动产生偏移dxoffset比例,默认为1 protected float getDistanceRatio(){

3.1K30

Android RecyclerView刷新分页实现

在开发中常常使用到刷新分页,这里实现一个 RecyclerView 简单刷新分页操作,测试效果见文末,实现过程参考如下: 实现思路 加载更多数据使用到 RecyclerView 加载多种布局,根据...Item 位置,当然了这里使用布局管理器是 LinearLayoutManager ,这样查找屏幕上第一个可见 Item 就显得容易多了,下面介绍一些 LinearLayoutManager...</LinearLayout Item布局 /**item.xml**/ <?...根据不同 ViewType 加载多种布局用法,使用时根据不同布局创建不同 ViewHolder , 然后根据不同 Viewholder 为对应 Item 添加数据,注意 getItemViewType...选项单击事件回调接口 */ public interface OnItemClickListener{ //参数(父组件,当前单击View,单击View位置,数据) void onItemClick

1.2K40

RecyclerView各种版本兼容问题处理集锦

2、在23.2.0之前版本上,RecyclerView会默认充满整个屏幕下方,即使在布局文件中将其高度设置为wrap_content,循环视图依旧霸气地填充到屏幕底部,导致在它后面的其它视图都显示不了了...该问题已明确是RecyclerView兼容包bug,Android官方在23.2.0及其之后版本已经修复了,所以如果代码中有用到RecyclerView,需确保build.gradle中recyclerview-v7...3、当循环视图列表项已经占满整个屏幕,此时再往顶部添加一条新记录,感觉屏幕没有发生变化,也没看到插入动画。实际上视图顶部确实有添加新记录,把列表项往下拉就能看到,只是循环视图不会自动进行下拉。...4、Android5.0之后如果使用ScrollView嵌套RecyclerView,那么RecyclerView将只显示第一行,后面部分要滑动才会出现,但此时滑动只有RecyclerView部分而不是整个...--中间补充RecyclerView--> 点查看Android开发笔记完整目录

2.5K20

Android之MaterialDesign应用技术

,他也是一个布局,和线性布局什么都一样用,该布局是协调控件之间联系。...,LayoutParams是布局参数,textview这个控件是在协调者布局中滑动,所以,要获取该布局参数,然后再设置行为。...,往下滑,则返回顶部图标显示,往上滑图标不显示, 原因:在很多段子软件中,会有大量文字和图片,当用户往下翻时候,也就是说内容会不断在上方消失,下面的内容不算刷新出来,这时右下角出现一个辅助用户回到顶部按钮...,因为在往上翻时候可能加载了很多,有些用户就像一步到达顶部,这就出现了滑动监听。...2.1:创建布局文件 外层是协调者布局,中间就是一个类似于listviewRecyclerView,和一个右下角返回顶部按钮。

1.3K90

淘宝首页Bug!嵌套滑动及NestedScroll

可以清楚看到: 京东:滑动很顺畅,没有停滞情况,tab到顶部后就 紧接着 滑动内部商品列表了。整个过程手指是连续拖动,没有抬起。 淘宝:在tab滑到顶部后,手指继续拖动,但商品流是不能滑动。...所以 按照正常处理滑动冲突思路处理----当tab没到顶部时,parent拦截事件,tab到顶部时 parent就不拦截事件,但是由于手指没抬起来,所以这一事件序列还是继续给parent,不会到内部RecyclerView...相对, 向下滑动内部RecyclerView时,如果还能滑就滑内部RecyclerView;如果已经滑到顶部就让parent去滑动外部RecyclerView。...其中mRootList是外部RecyclerView,mChildList是内部RecyclerView,childTop是tab这个viewtop 用于判断是否到顶部。...//childTop是tab到顶部距离。

1.4K20

Android RecyclerView打造悬浮效果实现代码

这是一个City列表,每个City都有所属Province,需要在滑动时候,将对应Province悬浮在顶部。悬浮顶部Province需要根据列表滑动而适当改变位置,实现“顶上去”效果。...实现思路: 利用RecyclerView.ItemDecoration绘制Province(就像绘制分割线一样) 同一组City,只绘制一个Province 计算偏移,将当前Province固定在顶部...当前Item上一个Item为同一个分组时,跳过该Item绘制。...viewBottom可近似认为下个Item顶部)距离RecyclerView顶部小于top时,偏移当前分组位置。...来个自定义布局?那就来个自定义布局吧。 实现 实现原理跟上面一样,由于需要自定义布局,所以需要在接口中添加一个获取View方法。

1.8K50
领券