首页
学习
活动
专区
工具
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.3K20
  • 嵌套滑动通用解决方案--NestedScrollingParent2

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

    3.8K31

    recycleview的优化_recyclerview原理

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

    4.3K21

    聊聊Android嵌套滑动

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

    1.3K10

    滑动吸顶效果

    最初想用 CoordinatorLayout 加 RecyclerView,但效果不好直接用,或者用 NestedScrollView 与 RecyclerView 组合使用。...但 NestedScrollView 与 RecyclerView 组合时怎么也不能使 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.7K10

    ViewPager2实现内部Item的动态滚动

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

    1.7K20

    踩坑记 | Flutter升级影响了NestedScrollView?

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

    82320

    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 属性,当内部内容滚动时

    2.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的变更里有一行: 添加了嵌套滚动改进...[007S8ZIlly1ghf2ej40ryj306406aabd.jpg] 代码仅供演示,非必要情况下并不推荐NestedScrollView和RecyclerView的嵌套。...相比NestedScrollView,RecyclerView只实现了NestedScrollingChild2,在嵌套滑动体系里只能作为子布局存在,所以下面以RecyclerView为子,NestedScrollView...阻断依赖可能造成类丢失,但编译期能及时发现(如果有人用反射去调一个野生类,是不是就发现不了了);而不阻断呢,又可能引入一些高版本的库,导致无法预测的问题。

    97800

    细说 AppbarLayout,如何理解可折叠 Toolbar 的定制

    所以除了使用 NestedScrollView,我们还经常使用 RecyclerView 和 SwipeRefreshLayout 作为配套的嵌套滑动组件,这是其它博文都没有提到的,希望大家注意。...也就是说 snap 代表一种吸附的行为,当一个滑动事件结束后,Toolbar 会向最接近它的边缘自行滚动。那什么是最近的概念呢?比如向上滑动时,如果滑过了一半它就向上滚动,否则滚动回原来的地方。...现在,我尝试用自己的理解来解释这个东西,真的是自己的理解,不代表我完全正确的,但是我觉得这种理解有助于初学者来理解 Content scrim。 我们先来思考一个词语:交互。...CollapsingToolbarLayout 可以控制的子 View 滚动模式有 3 种: none 默认,无任何效果 Parallax 视差滚动 pin 固定某个 View 它通过 xml...就是滚动的速度不同,造成的视觉差异效果。也就是说 CollapsingToolbarLayout 中有的 view 滚动的快一些,其它的滚动的慢一些。

    3.1K30

    Android开发的那些坑和小技巧

    两个同样会滚动的View居然放到了一起,而且还是嵌套的关系。曾经有一个这样的需求:界面一共有4个区域部分,分别是公司基本信息(logo、名称、法人、地址)、公司简介、公司荣誉、公司口碑列表。...需要解决ListView放到ScrollView中的滑动问题和RecyclerView的显示问题(如果RecyclerView的高度没法计算,你是看不到内容的)。...),重写onMeasure方法(此方法比较麻烦,此处不表,下次写一篇文章再作介绍)。...因为控件封装得还算好,没改多少布局就OK了,一运行,流畅顺滑,一切迎刃而解! 本来就是这么简单的问题,为什么非得用ScrollView嵌套呢? stackoverflow早就告诉你了,不要这样嵌套!...问题已经找到了,text.length(),不空指针才怪。 text = text == null ?

    1.1K30

    【Android】这效果,我没法描述

    思路 先说说实现的思路吧,上面的效果大致可以分成两个部分: 1、Tab向上滚动到顶部时悬浮 Tab滚动后悬浮在顶部嘛~~ 这效果使用CoordinatorLayout + AppBarLayout就能轻松实现...android.support.design.widget.CoordinatorLayout> LinearLayout中设置app:layout_scrollFlags="scroll|exitUntilCollapsed" 而 TabLayout 不设置...CoordinatorLayout、AppBarLayout的详细用法我就不多说了) 然后,只要在Java代码中为ViewPager添加几个列表Fragment就能看到以下的效果(注意:列表不可以是ListView,需要用RecyclerView...Tips 问题:使用CoordinatorLayout时,滚动不流畅问题 解决方案:可以写个Behavior添加到AppBarLayout中。...具体的解决方案 问题:如果你在想要刷新功能,在CoordinatorLayout外面套了一个SwipeRefreshLayout,一不小心就触发了刷新~~(自己体会) 解决方案:这个问题可以通过对AppBarLayout

    1K50
    领券