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

恢复 RecyclerView 滚动位置

您可能在开发过程中遇到过这种情况,在 Activity/Fragment 被重新创建后,RecyclerView 丢失了它之前保有的滚动位置信息。...通常这种情况发生原因是由于异步加载 Adapter 数据,且数据在 RecyclerView 需要进行布局时候尚未加载完成,导致 RecyclerView 无法恢复到之前滚动位置。...从  1.2.0-alpha02 版本开始,Jetpack RecyclerView 提供了一个新 API,可以让 Adapter  在数据加载完成之前阻塞布局行为 ,从而避免丢失滚动位置信息。...接下来我们会介绍如何使用这个新 API,以及它工作原理。 恢复至原有滚动位置 有好几种方法可以用来恢复 RecyclerView 至正确滚动位置,您可能已经在实际项目中用到了这些方法。...赶快开始使用吧!

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

Android开发笔记(一百三十五)应用栏布局AppBarLayout

下面是AppBarLayout结合RecyclerView实现工具栏向上滚动效果截图: ?...NestedScrollView 虽说通过AppBarLayout可实现Toolbar滚动效果,但并非所有可滚动控件都会触发Toolbar滚动,事实上只有Android5.0之后新增少数滚动控件才具备该特技...RecyclerView是其中一个特工,它可用来替代ListView和GridView;替代ScrollView则另有其人,它便是嵌套滚动视图NestedScrollView,在Android5.0之后...下面是AppBarLayout结合NestedScrollView实现工具栏向上滚动效果截图: ?...所以,搜遍AndroidSDK源码,总共也只有三个控件符合这个条件,它们是RecyclerViewNestedScrollView,以及SwipeRefreshLayout,在布局文件中使用名称如下所示

1.8K40

Android嵌套滑动冲突解决方法

(1)重写一个viewpager继承系统ViewPager,至于怎么重写我不太记得了 (2)重写RecyclerView继承系统RecyclerView,因为我记得会出现高度原因导致RecyclerView...2.布局嵌套其它可滚动控件情况 就是在第一种情况下把RecyclerView换成其它可滑动控件。...和NestedScrollView都实现NestedScrollingChild接口,并在内部封装了解决滑动冲突逻辑处理,所以只有NestedScrollView直接嵌套RecyclerViewNestedScrollView...NestedScrollView用法和RecyclerView一样,记得加那些属性。...四.其它使用时问题 并非解决滑动冲突就没有其它问题。 1.NestedScrollViewRecyclerView)重新加载数据时会自动滚动到底部。

3.1K21

CoordinatorLayout使用全解析

enterAlwaysCollapsed:假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完...应该说在MD中,RecyclerView代替了ListView,而NestedScrollView代替了ScrollView,他们两个都可以用来跟ToolBar交互,实现上拉下滑中ToolBar变化。...在RecyclerView或者任意支持嵌套滚动view比如NestedScrollView上添加app:layout_behavior。...RecyclerView任意滚动事件都将触发AppBarLayout或者AppBarLayout里面view改变。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完。

1.8K20

聊聊Android嵌套滑动

(例如 NestedScrollViewRecyclerView ) 中,开始嵌套滑动都依赖NestedScrollingChildHelper 这个对象。...RecyclerView 为例: 嵌套滑动我们最先接触到可能就是 NestedScrollView 这个控件了,那么它是怎么支持嵌套滑动呢?...我们仍然从它touch事件处理流程开始看: 在它 onInterceptTouchEvent 中,当手势是 MOVE 时候, 如果是垂直方向滑动并且达到滑动定义距离,就开始执行滑动: 当手势是...如果滑动时候不拦截的话,手势事件会交给子view去处理,如果子view是可以滚动,这时候就会有冲突,所有滚动时候事件要拦截下来交给自己处理。...不全是,最常见比如 NestedScrollView 包裹 RecyclerView ,这时候 NestedScrollView 会把 UNSPECIFIED 传递给 RecyclerView onMeasure

1.2K10

NestedScrollView+Recyclerview下滑卡顿解决方法

大家在进行安卓开发用到NestedScrollView+Recyclerview时候,经常出现情况就是加载下滑时候没有任何问题,很流畅,但是在下滑以后明显出现了卡顿情况,小编根绝这个问题,给大家再来解决方法...,在头部可能是一些比较复杂多种界面,可能采用比较简单方法来处理,那就是NestedScrollView+Recyclerview,这这种方式比较直观和方便操作.比如像下面的代码 <?...添加以下代码 mRecycler.setFocusable(false); 以上是小编测试过解决方法,接下来,我们再给大家分享一篇简单方法代码: 最开始使用ScrollView时候嵌套ListView...会出现item显示不全等一些问题,现在google提供NestedScrollView已经可以解决该问题,但是在使用NestedScrollView嵌套RecyclerView时候会发现我们在RecyclerView...以上就是关于NestedScrollView+Recyclerview下滑卡顿所有方法,希望我们整理东西能够真正帮助到你,喜欢的话就收藏一下吧。

2.6K20

Android RecyclerView 实现快速滚动示例代码

简评:Android Support Library 26 中终于实现了一个等待已久功能: RecyclerView 快速滚动 。...Android 官方早就在建议开发者使用 RecyclerView 替代 ListView,RecyclerView 也确实表现要好于 ListView,除了没有快速滚动,就像下面这样: ?...因此,之前要想在 RecyclerView 上实现快速滚动,往往是依赖第三方库,比如:FutureMind/recycler-fast-scroll 或 timusus/RecyclerView-FastScroll....... } 注意 Support Library 从版本 26 开始移到了 Google maven 仓库,并且 Google 计划未来将所有的仓库都只通过 http:// maven.google.com...现在,来看一看具体怎么实现 RecyclerView 快速滚动: <?xml version="1.0" encoding="utf-8"?

1.2K31

浅谈Android RecyclerView UI滚动控件示例

还有就是只能够纵向滚动,如果要想实现横向移动,用 ListView 是做不到RecyclerView 可以说是一个增强版 ListView 。...RecyclerView 现在可是官方推荐使用滚动控件哦O(∩_∩)O~ 1 基本用法 RecyclerView 也是新增控件,所以必须先在项目的 build.gradle 中添加相应依赖库才能使用...因为 RecyclerView 也不是系统内置 SDK,所以这里引用是完整包路径。...onBindViewHolder – 对 RecyclerView 子项数据进行赋值,这个方法会在每个子项被滚动到屏幕内时进行。...recyclerView 示例 我们使用了 recyclerView 创建出了 ListView 效果,而且代码逻辑更清晰咯。 2 横向滚动 现在让我们把这些猫变为 “横向滚动” 吧。

82310

功能强大Android滚动控件RecyclerView

RecyclerView使用比ListView使用是比较复杂,ListView使用是五个步骤,而我们RecyclerView使用有7个步骤,分别为: 1.在当前项目的build.gradle...相对第一种方法,第二种方法是比较便捷,可以不需要手动输入和知道当前版本,较少了出错率。 第二步:布局加入RecyclerView控件以及创建子项布局和适配器类。...小伙伴们,发现其中特点没有?对,就是RecyclerView怎么跟咱们Button、TextView等控件头部标签写法不一样啊?...子项数据进行赋值,会在每个子项被滚动到屏幕内时候执行 @Override public void onBindViewHolder(final FruitAdapet.ViewHolder...); 对了运行效果如下,可以实现上下滚动: ?

95541

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

通常我们要自行手动处理就是RecyclerView作为嵌套滑动子view情况。NestedScrollView一般直接作为根布局用来解决嵌套滑动。...2.2 再来看看NestedScrollView嵌套RecyclerView 关于NestedScrollView嵌套RecyclerView情况,即头部和列表可以一起滑动。如下图: ?...NestedScrollView嵌套RecyclerView 参考这篇实名反对《阿里巴巴Android开发手册》中NestedScrollView嵌套RecyclerView用法。...从此篇文章分析结论得知,NestedScrollView嵌套RecyclerView虽然可以实现效果,但是RecyclerView会瞬间加载所有item,RecyclerView失去view回收特性...,大于想要滚动距离,内层自行处理 }else { //内层已滚动距离,小于想要滚动距离,那么内层消费一部分,到顶后,剩外层滑动

3.5K31
领券