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

RecyclerView inside NestedScrollView inside SwipeRefreshLayout滚动不流畅

的原因是嵌套滚动冲突。当RecyclerView嵌套在NestedScrollView中时,它们都具有滚动功能,因此会导致滚动冲突,从而影响滚动的流畅性。

解决这个问题的方法是禁用NestedScrollView的滚动功能,让RecyclerView独立处理滚动事件。可以通过设置NestedScrollView的属性android:nestedScrollingEnabled="false"来禁用嵌套滚动。

另外,SwipeRefreshLayout也可能对滚动性能产生影响。可以尝试使用其他滚动容器,如ConstraintLayout或CoordinatorLayout,来替代NestedScrollView和SwipeRefreshLayout的组合,以提高滚动的流畅性。

总结:

  • 原因:RecyclerView和NestedScrollView的滚动冲突导致滚动不流畅。
  • 解决方法:禁用NestedScrollView的滚动功能,让RecyclerView独立处理滚动事件;尝试使用其他滚动容器替代NestedScrollView和SwipeRefreshLayout的组合。
  • 相关链接:腾讯云产品中与RecyclerView、NestedScrollView、SwipeRefreshLayout相关的产品和文档链接暂无提及。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android5.0和6.0之后新增的控件说明

PDF文件渲染器 PdfRenderer Android 5.0 任务调度器 JobScheduler Android 5.0 任务服务 JobService Android 5.0 v4 下拉刷新布局 SwipeRefreshLayout...Android 5.0 抽屉布局 DrawerLayout Android 5.0 滑动面板布局 SlidingPaneLayout Android 5.0 嵌套滚动视图 NestedScrollView...Android 5.0 appcompat-v7 工具栏 Toolbar Android 5.0 recyclerview-v7 循环视图 RecyclerView Android 5.0 线性布局管理器...控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4.widget.SwipeRefreshLayout...GridView NestedScrollView:替代ScrollView Snackbar:替代Toast FloatingActionButton:替代ImageButton TextInputEditText

1.2K20

NestedScrollView+Recyclerview下滑卡顿解决方法

大家在进行安卓开发用到NestedScrollView+Recyclerview的时候,经常出现的情况就是加载下滑的时候没有任何问题,很流畅,但是在下滑以后明显出现了卡顿的情况,小编根绝这个问题,给大家再来的解决方法...我们先来看下这个BUG的表现: 1.滑动卡顿, 2.加载下滑时流畅,下滑时明显的卡顿 3.进入页面时直接加载RecyclerView部分的内容(这里我理解为控件惯性,不知道对不对——-尴尬!!!!...其次是加载上下滑动加载流畅时 通过代码 mRecycler.setHasFixedSize(false); 对于第三种现象,我找了很多方法,都以失败而告终,其实出现这种情况是应为Recyclerview...已经可以解决该问题,但是在使用NestedScrollView嵌套RecyclerView的时候会发现我们在RecyclerView上滑动的时候没有了滚动的效果,查看文档找到的解决办法: LinearLayoutManager...以上就是关于NestedScrollView+Recyclerview下滑卡顿的所有方法,希望我们整理的东西能够真正帮助到你,喜欢的话就收藏一下吧。

2.6K20

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

通常我们要自行手动处理的就是RecyclerView作为嵌套滑动子view的情况。NestedScrollView一般直接作为根布局用来解决嵌套滑动。...2.2 再来看看NestedScrollView嵌套RecyclerView 关于NestedScrollView嵌套RecyclerView的情况,即头部和列表可以一起滑动。如下图: ?...NestedScrollView嵌套RecyclerView 参考这篇实名反对《阿里巴巴Android开发手册》中NestedScrollView嵌套RecyclerView的用法。...从此篇文章分析结论得知,NestedScrollView嵌套RecyclerView虽然可以实现效果,但是RecyclerView会瞬间加载所有item,RecyclerView失去的view回收的特性...(点击查看NestedScrollingParent2LayoutImpl2的实现) 效果如下,可见滑动流畅,临界处不用抬起手指重新滑,且查看日志不是一次加载完item。 ?

3.5K31

recycleview的优化_recyclerview原理

最近研究应用流畅度专题时,发现RecyclerView里边的坑真多,有很多可以优化的点,在理解优化点之前,最好对RecyclerView的缓存机制有一些了解,比如得知道CacheView和RecycledViewPool...,但是第二个feed之 后的滚动流畅的,因为这个时候RecyclerView已经有能重用的view了。...但第一种情况,RecyclerView内部做了回收工作,设设置影响不大,设置此属性作用主要针对第二种情况。...默认是setNestedScrollingEnabled(true),是支持嵌套滚动的,也就是说当它嵌套在NestedScrollView中时,默认会随着NestedScrollView滚动滚动,放弃了自己的滚动...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

3.6K20

聊聊Android嵌套滑动

RecyclerView ) 中,开始嵌套滑动都依赖NestedScrollingChildHelper 这个对象。...RecyclerView 为例: 嵌套滑动我们最先接触到的可能就是 NestedScrollView 这个控件了,那么它是怎么支持嵌套滑动的呢?...如果是其他手势,滑动的时候拦截,滑动的时候拦截。如果滑动的时候拦截的话,手势事件会交给子view去处理,如果子view是可以滚动的,这时候就会有冲突,所有滚动的时候事件要拦截下来交给自己处理。...接着分发嵌套滚动事件,中间还有一些针对 Scroll mode的处理,我们这里不关心: UP 的时候会根据距离判断是否需要消费快速滑动,如果则会进行分发: 所以我们需要关注的就是: startNestedScroll...不全是,最常见的比如 NestedScrollView 包裹 RecyclerView ,这时候 NestedScrollView 会把 UNSPECIFIED 传递给 RecyclerView 的 onMeasure

1.2K10

滑动吸顶效果

最初想用 CoordinatorLayout 加 RecyclerView,但效果不好直接用,或者用 NestedScrollViewRecyclerView 组合使用。...但 NestedScrollViewRecyclerView 组合时怎么也不能使 RecyclerView 自己滑动,而 NestedScrollView 滑动,事件拦截,禁止嵌套滑动,NestedScrollView...实现效果如下: 2019_05_19_16_07_00.gif 要让 CoordinatorLayout 一开始滑动,然后可以滑动,再然后又不可以滑动,所以想自定义一个控件,重写 onNestedPreScroll...STICK_TITLE_INDEX) { coordinatorLayout.canScroll(false) } else { // 要吸顶的位置到了,让外面滚动...stickyTitle.visibility = View.GONE // 第一个可见的小于 1,悬浮标题还能看见 } else { // 要吸顶的位置到了,让外面滚动

2.6K10

ViewPager2实现内部Item的动态滚动

当然RecyclerView也可以,用一个仿抖音的那种 LayoutManager 就行,但是为什么呢,因为涉及到了视频播放,手动去处理一些生命周期和懒加载,总是非常麻烦,而且ViewPager2本身就是基于...但是首先你要考虑的东西就很多,如果视频详情页超出一屏呢,也就是内部用了 RecyclerView或者NestedScrollView 呢,是不是还需要处理一下滑动冲突,当然这也不是很困难,内部拦截法就可以搞定...好家伙,按套路出牌啊,我故作深沉,实则稳如老狗( ViewPager2 不是有一个 fakeDragBy() 方法设置偏移量吗),这个有点麻烦,我得考虑考虑。...解决方法 既然如此,ViewPager2是基于RecyclerView,那么我去调用RecyclerView滚动不就行吗,思路如下: ViewPager2-> RecyclerView, RecyclerView...默认是私有的,可以通过反射或者 getChildAt(0) 获取 RecyclerView不支持 scrollTo() ,可以通过 LinearLayouManager 去滚动 LinearLayoutManager-scrollToPositionWithOffset

1.5K20

踩坑记 | Flutter升级影响了NestedScrollView

嗨,我是哈利迪~最近有个bug排查了好几天,就是有个老页面因业务复杂度,使用了NestedScrollView+tab+多Fragment的结构(各Fragment里有RecyclerView,即存在嵌套滑动...androidx.fragment、lifecycle和annotation给拉过来了,导致androidx.core也从1.0.0变成了1.1.0,查阅core版本发布,在1.1.0的变更里有一行: 添加了嵌套滚动改进...[007S8ZIlly1ghf2ej40ryj306406aabd.jpg] 代码仅供演示,非必要情况下并不推荐NestedScrollViewRecyclerView的嵌套。...相比NestedScrollViewRecyclerView只实现了NestedScrollingChild2,在嵌套滑动体系里只能作为子布局存在,所以下面以RecyclerView为子,NestedScrollView...阻断依赖可能造成类丢失,但编译期能及时发现(如果有人用反射去调一个野生类,是不是就发现不了了);而阻断呢,又可能引入一些高版本的库,导致无法预测的问题。

93600

Flutter入门指北(Part 8)之Sliver 组件及NestedScrollView

// 以下三个等例子再讲 this.floating = false, this.pinned = false, this.snap = false, }) 别的参数应该陌生吧...以上部分代码查看 sliver_main.dart 文件 NestedScrollView 讲到这了,不得不提下 Scrollable 中比较重要的一员 NestedScrollView,先看下官方的解释.../// A scrolling view inside of which can be nested other scrolling views, with /// their scroll positions...糟透了的翻译 X 1:一个内部能够嵌套其他滚动部件,并使其滚动位置联结到一起的滚动部件 /// The most common use case for this widget is a scrollable...糟透了的翻译 X 3:用于构建 NestScrollView 的头部部件,innerBoxIsScrolled 主要用来控制 SliverAppBar 的 forceElevated 属性,当内部内容滚动

2K30

踩坑记 | Flutter升级影响了NestedScrollView

嗨,我是哈利迪~最近有个bug排查了好几天,就是有个老页面因业务复杂度,使用了NestedScrollView+tab+多Fragment的结构(各Fragment里有RecyclerView,即存在嵌套滑动...androidx.fragment、lifecycle和annotation给拉过来了,导致androidx.core也从1.0.0变成了1.1.0,查阅core版本发布,在1.1.0的变更里有一行: 添加了嵌套滚动改进...代码仅供演示,非必要情况下并不推荐NestedScrollViewRecyclerView的嵌套。...相比NestedScrollViewRecyclerView只实现了NestedScrollingChild2,在嵌套滑动体系里只能作为子布局存在,所以下面以RecyclerView为子,NestedScrollView...阻断依赖可能造成类丢失,但编译期能及时发现(如果有人用反射去调一个野生类,是不是就发现不了了);而阻断呢,又可能引入一些高版本的库,导致无法预测的问题。

76520

Android scrollview如何监听滑动状态

ScrollView 视图的滚动过程,其实是在不断修改原点坐标。当手指触摸后,ScrollView会暂时拦截触摸事件,使用一个计时器。...首先说一下NestedScrollView 的滑动事件的监听, 如果使用 nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener...我们可以自己定义一个ScrollView public class MyScrollView extends NestedScrollView { private OnScrollChanged...} } 这样我们就可以通过实现 onScrollChanged() 监听滑动事件了 ,其中可以监测到滑动距离,这样就可以做好多事情了; 但是现在有一个需求就是【滑动的时候隐藏 一个靠边的悬浮框,滑动是悬浮框显示出来...scrollview 不像recyclerview一样可以监测滑动状态。

5.1K30
领券