Android NestedScrollView嵌套RecyclerView滑动卡顿问题终极解决方案

2023-10-26

如果是如下的页面布局:NestedScrollView嵌套RecyclerView
在这里插入图片描述
随着recyclerVIew的加载,item越多,会发现滑动卡顿;大致解决方案有以下两种:

方案1:取消recyclerVIew的滑动

	mRecyclerView.setNestedScrollingEnabled(false);

这种方案可能解决绝大部分问题。但是如果item中是加载的图片。但是可能就不起作用了。
可以尝试方案二;

方案2:采用 CoordinatorLayout + AppBarLayout解决

即用AppBarLayout包裹列表以外需要滑动的view。这样就可以实现联动了;注意此时一定不能设置

mRecyclerView.setNestedScrollingEnabled(false);

核心代码如下:

 <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:id="@+id/layout_data"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:overScrollMode="never"
            android:scrollbars="none">

            <com.google.android.material.appbar.AppBarLayout
                android:id="@+id/mAppBarLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@null"
                android:fadingEdge="none"
                app:elevation="0dp">

                <androidx.core.widget.NestedScrollView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:overScrollMode="never"
                    android:scrollbars="none"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed">

                    <ImageView
                        android:id="@+id/iv_top"
                        android:layout_width="match_parent"
                        android:layout_height="76dp"
                        android:scaleType="fitXY"
                        android:src="@mipmap/ic_estimate_title" />


                </androidx.core.widget.NestedScrollView>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="0dp"/>

            </com.google.android.material.appbar.AppBarLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior">

                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/recyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="-8dp"
                    android:layout_marginRight="-8dp"
                    android:background="@color/color_bg"
                    android:divider="@color/trans"
                    android:horizontalSpacing="0dp"
                    android:listSelector="@color/trans"
                    android:overScrollMode="never"
                    android:scrollbars="none"
                    android:verticalSpacing="12dp" />

            </RelativeLayout>


        </androidx.coordinatorlayout.widget.CoordinatorLayout>

大功告成!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android NestedScrollView嵌套RecyclerView滑动卡顿问题终极解决方案 的相关文章

  • 如何从菜单项获取视图引用?

    我试图获取菜单项的参考 但我就是不能 整个事情都在一个片段内 Menu boat accept menu xml menu menu
  • 如何让 MediaRouteSelector 显示可用的 MiraCast 和 Chromecast 设备?

    我正在尝试让我的媒体路由选择器同时显示 MiraCast 和 Chromecast 设备 我有一个 Chromecast 接收器应用程序 并且还使用 Android 中的演示 API 因此理想情况下 用户只需单击媒体路由器按钮并选择他们拥有
  • 如何在Android中打开设备管理员设置?

    我想去Security gt Device administrators然而 在我的设置中 我只能弄清楚如何打开Security gt Intent dialogIntent new Intent android provider Sett
  • Android 中的音频交叉淡入淡出

    我正在开发一个媒体播放器用于我的学习目的 我希望在媒体播放器应用程序中具有交叉淡入淡出功能 但我不知道从哪里开始 我尝试在互联网上搜索但没有运气 我使用的是安卓MediaPlayer所有媒体播放器相关操作的类 任何人都知道任何解决方法可以实
  • RxJava 相当于 orElse 是什么

    在其他语言的流 函数域中有一个常见的操作 那就是 orElse 它就像一个 if 当当前链没有得到任何结果时 它会更改为备用链 在具有 Maybe 类型的语言中 它基本上会继续 Some 类型的链或更改为 None 类型的 orElse 理
  • 从源代码定制 Android 彩信/短信应用程序?

    好的 这是交易 我想下载 Android 手机附带的彩信 短信应用程序的完整源代码 我希望能够对其进行修改 并向其添加一些自定义功能 我正在使用 Eclipse 进行开发 并且使用的是 Windows 7 我注意到现在有一 个适用于 Win
  • Android - 如何创建布局选择器(如 ImageButton 选择器)

    我有一个 ImageButton 和一个包裹该按钮的 LinearLayout 如下所示
  • 在视图上按下按键时不会调用 onKeyDown

    我有一个包含两个视图的活动 一个视图重写 onDraw 并正确处理 onTouchEvent 但是当我尝试检索第二个视图的 onKeyDown 时 它没有给我任何结果 相反 当我按下后退按钮或任何其他键盘按钮时 会调用 onKeyDown
  • 使用 android ndk 独立工具链构建 mono (android ndk r8e)

    我正在尝试使用 android ndk 版本 r8e 中的 ndk 独立工具链构建 mono 但我无法完成构建 我像这样设置我的独立环境 export SYSROOT home jeremybell Desktop android ndk
  • 将 LinkedHashset 内容复制到新的 ArrayList?

    我有一个最初包含一些内容的 listView 如果它得到相同的内容 我通过删除重复linkedhashset 现在 我想复制linkedhashset内容 即没有重复的内容到新的ArrayList 我尝试复制通过 p addAll 0 lh
  • 如何为自定义视图组实现 Android Accessibility

    我有一个从 ViewGroup 扩展的 CustomViewGroup 其中我有 2 个文本视图和 3 4 个不同的按钮 这些按钮是我从不同的 XML 文件中填充的 我的问题是它似乎无法访问 我最后需要做什么才能看到问题所在 您能给我指点有
  • 如何在 Android WebView 中从远程 URL 访问本地资源?

    要加载 HTML 中的资源 我使用 URLfile android asset my image png 当我在本地加载 HTML 时 它可以工作 例如 使用WebView loadData method 但是 我无法从远程网站加载本地资源
  • 当活动从最近的活动中删除时,优雅地清理绑定服务

    我有一个绑定服务 需要时会转到前台 这是我所拥有的简化版本 class MyService extends Service private static final ServiceConnection serviceConnection n
  • 如何在真实设备上模拟来电? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 出于测试目的 我想在真实的 Andr
  • 在 Firebase 中获取用户名、姓氏和 ID

    我使用 firebase 创建了登录 注册 并且工作正常 但我需要从用户那里获取姓名 我怎样才能做到这一点 我想知道是否可以从用户那里获取 ID 因为我想在我的应用程序中创建一个排名页面 因此只有 ID 才是唯一的 要获取唯一 ID 您可以
  • 执行选项卡切换时避免重新创建相同的视图

    目前 我有 2Fragments 可通过以下方式切换ActionBar s tab getSupportActionBar setNavigationMode ActionBar NAVIGATION MODE TABS ActionBar
  • 如何以编程方式滚动 Horizo​​ntalScrollView

    我有一个HorizontalScrollView其中包含一个RelativeLayout 该布局在 XML 中为空 并由 onCreate 中的 java 填充 我希望这个滚动视图最初位于中间的某个位置RelativeLayout 它比屏幕
  • Robotium 和系统对话框

    当我尝试与蓝牙设备配对时 会出现带有 PIN 码的系统确认对话框 有 取消 和 确定 按钮 但我无法使用 Robotium 单击它们 如何在 Robotium 中使用 Android 操作系统对话框 谢谢 这对我有用 solo clickO
  • 安卓应用安全

    我想开发一个用户数据非常敏感的应用程序 我是开发新手 所以不确定以下内容 技术对于安全或高效来说是必要的 请留下您的评论 提前致谢 为了额外的安全性 我们可以避开市场 游戏商店 并将应用程序安装在个人设备上 它会让它更安全吗 我必须在设备上
  • 根据内容对列表视图中的相似行进行分组

    i have a listview that displays a set of rows each row is clickable now i wish to group similar type of rows under one h

随机推荐

  • 前端模块化:匿名闭包、CommonJS、ES6模块化

    ES5时 用匿名函数实现的模块化 通过将代码放在闭包当中 使得命名不会冲突 每一个js文件都成为独立的模块 需要复用代码时 将闭包中的结构返回到全局作用域即可 通过模块名 方法 属性的方法使用 a js var moduleA functi
  • 2022年第十四届“华中杯”大学生数学建模挑战赛

    2022年第十三届 华中杯 大学生数学建模挑战赛 为了推广我国高校数学建模实践教学 培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力 第十四届 华中杯 大学生数学建模挑战赛 以下简称竞赛 将于2022年3月开始 举办竞赛的目的
  • 【无标题】力扣链表总结

    k个一组反转链表 25 前置知识1 2 反转整个链表 反转以 a 为头结点的链表 ListNode reverse ListNode a ListNode pre cur nxt pre null cur a nxt a while cur
  • 1.网络工程基础知识

    目录 1 1 网络工程的定义 1 可以通过以下几个方面加强对工程的了解 2 网络工程属于IT集成工程 1 2 网络工程实施原则 1 从网络整体性能上考虑 IT工程实施需要遵守以下原则 2 从企业成本考虑 IT工程实施则需要遵守以下一些原则
  • Windows下自定义文件类型如何双击打开,如何双击文件后都在一个实例中打开

    1 要实现文件双击打开 需要在注册表中将文件类型与要打开文件的程序相关联 在HKEY CURRENT USER Software Classes 或者 HKEY LOCAL MACHINE Software Classes 下创建 xxxx
  • 【贪心算法】最优服务次序问题

    算法实现题 4 6 最优服务次序问题 设有n个顾客同时等待一项服务 顾客i需要的服务时间为ti 应如何安排n个顾客的服务次序才能使平均等待时间达到最小 平均等待时间是n个顾客等待直到完成服务的时间总和除以n 对于给定的n个顾客需要的服务时间
  • gp 索引列表查询,表字段类型,字段注释查询

    所有索引列表 SELECT n nspname as Schema c relname as Name c2 relname as Table FROM pg catalog pg class c JOIN pg catalog pg ro
  • 解决v-for轮播图中图片无法显示

    v fo中src拿不到img的地址 图片无法显示 view可以打印出list data中的img值 说明数组没问题 已经拿到图片值 将src直接赋值地址 有图片显示 那么就是src没有拿到图片地址 网页元素检查中也发现 这里的图片img中没
  • 无盘服务器2018,2018无盘服务器配置

    2018无盘服务器配置 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 源端服务器数据收集声明 源端服务器上安装和配置完迁
  • Nerd Font 字体安装

    一 Nerd Font 是什么 Nerd Font 是为开发人员准备的 具有大量字形 图标 的字体 特别是从流行的 标志性字体 中添加大量额外的字形 如Font Awesome Devicons Octicons等 二 安装步骤 1 克隆仓
  • React 下 message组件属性设置

    式子 message info content React ReactNode duration number gt void onClose configonClose 例子 message info 提示内容 自动关闭的延时 单位秒 设
  • MATLAB实现PSO-DBN算法优化深度置信网络的多输入单输出回归预测

    MATLAB实现PSO DBN算法优化深度置信网络的多输入单输出回归预测 随着数据分析和机器学习技术的不断发展 深度学习作为一种强大的分析工具广泛应用于各个领域 在时间序列预测领域中 深度置信网络 Deep Belief Network D
  • c/c++基础(二十三) GDB调试入门

    用GDB调试程序 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具 或许 各位比较喜欢那种图形界面方式的 像VC BCB等IDE的调试 但如果你是在UNIX平台下做软件 你会发现GDB这个调试工具有比VC BCB的
  • Testing ovn manually based on LXD (by quqi99)

    作者 张华 发表于 2022 05 27 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list NAME STATE IPV4 IPV6 TYPE SNAPSHOTS
  • 通过 Git 将代码提交到 GitHub

    通过 Git 将代码提交到 GitHub 文章目录 通过 Git 将代码提交到 GitHub 第一种 本地没有 Git 仓库 clone GitHub 上已有的仓库 第二种 将本地普通仓库变成 Git 仓库 并推送到 GitHub 第三种
  • Win7 计算机中丢失api-ms-win-core-path-

    背景 win7安装软件时提示 无法启动此程序 因为计算机中丢失api ms win core path 1 1 0 dll 问题原因 缺少api ms win core path 1 1 0 dll 解决方式 下载dll并放到指定路径 下载
  • 第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版)

    获取更多资讯 赶快关注上面的公众号吧 强化学习系列 第一章 强化学习及OpenAI Gym介绍 强化学习理论学习与代码实现 强化学习导论第二版 第二章 马尔科夫决策过程和贝尔曼等式 强化学习理论学习与代码实现 强化学习导论第二版 第三章 动
  • asp 打开服务器文件夹,什么是ASP?如何打开ASP文件

    ASP是基于WEB的一种编程技术 可以说是CGI的一种 它可以完成以往CGI程序的所有功能 如计数器 留言簿 公告板 聊天室等等 ASP可以轻松地实现对页面内容的动态控制 根据不同的浏览者 显示不同的页面内容 而浏览者一点觉察不出来 就像为
  • ROS配置DMZ?防火墙教程-ros配置DMZ

    简单的说 当我们内网服务器的所有端口都需要开放到外网的时候 我们需要使用DMZ功能 本文将演示如何将内网IP10 10 10 2的所有端口映射 开放到公网 DMZ是英文 demilitarized zone 的缩写 中文名称为 隔离区 也称
  • Android NestedScrollView嵌套RecyclerView滑动卡顿问题终极解决方案

    如果是如下的页面布局 NestedScrollView嵌套RecyclerView 随着recyclerVIew的加载 item越多 会发现滑动卡顿 大致解决方案有以下两种 方案1 取消recyclerVIew的滑动 mRecyclerVi