记录一次NestedScrollView嵌套RecyclerView再嵌套RecyclerView的坑

2023-10-28

由于要做一些复杂的界面,需要在NestedScrollView下嵌套RecyclerView,在RecyclerView的条目中又有一个横向的RecyclerView。在 >= Android 7.0系统当中运行是显示正常的,但是在低于7.0系统当中出现了一个FC异常问题。

该异常如下:


java.lang.IllegalArgumentException: parameter must be a descendant of this view
  at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:5476)
  at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:5401)
  at android.support.v4.widget.NestedScrollView.isWithinDeltaOfScreen(NestedScrollView.java:1300)
  at android.support.v4.widget.NestedScrollView.onSizeChanged(NestedScrollView.java:1723)
  at android.view.View.sizeChange(View.java:17115)
  at android.view.View.setFrame(View.java:17077)
  at android.view.View.layout(View.java:16969)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:132)
  at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
  at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1361)
  at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:874)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:424)
  at android.widget.FrameLayout.onLayout(FrameLayout.java:361)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:2020)
  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1863)
  at android.widget.LinearLayout.onLayout(LinearLayout.java:1772)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:424)
  at android.widget.FrameLayout.onLayout(FrameLayout.java:361)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:2020)
  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1863)
  at android.widget.LinearLayout.onLayout(LinearLayout.java:1772)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:424)
  at android.widget.FrameLayout.onLayout(FrameLayout.java:361)
  at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2783)
  at android.view.View.layout(View.java:16978)
  at android.view.ViewGroup.layout(ViewGroup.java:5579)
  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2586)
  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2282)
  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1340)
  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6845)
  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:894)
  at android.view.Choreographer.doCallbacks(Choreographer.java:696)
  at android.view.Choreographer.doFrame(Choreographer.java:631)
  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:880)
  at android.os.Handler.handleCallback(Handler.java:815)
  at android.os.Handler.dispatchMessage(Handler.java:104)
  at android.os.Looper.loop(Looper.java:205)
  at android.app.ActivityThread.main(ActivityThread.java:5814)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)

解决方案就是在内层外层的NestedScrollView和RecyclerView加上这个属性:

android:descendantFocusability="beforeDescendants"
外部参考:

[1].https://stackoverflow.com/questions/27543665/appcompat-java-lang-illegalargumentexception-parameter-must-be-a-descendant-of


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

记录一次NestedScrollView嵌套RecyclerView再嵌套RecyclerView的坑 的相关文章

  • (收藏)强烈推荐几个学习数据结构和算法的网站和可视化工具

    一 学算法必去的一个网站 首先有一个网站那是每一个学习数据结构与算法都必须去的网站 说出来你就知道了 那就是大名鼎鼎的LeetCode 链接直达 https leetcode com 中文版长这个样子的 点开探索给你看看 强烈推荐人手一个啊
  • The evil CMake -- Compile bug, missing ')', error line number

    In case our CMakeLists txt have following codes following sentence should be wirte as FILE TO NATIVE PATH CMAKE SOURCE D
  • 蓝桥杯——七段码(并查集+二进制情况罗列)

    问题网站 https www lanqiao cn problems 595 learning contest id 73 这道题就是相邻的段可以表示一种符号 最少必须要有一段 其实我最初的想法就是把全部的符号表示按照符号个数分别罗列出来
  • 浅谈子网掩码

    一 IP地址 1 A类地址 范围 0 0 0 0 127 255 255 255 网络数 128 主机数 16777216 2 B类地址 范围 128 0 0 0 191 255 255 255 网络数 16384 主机数 65535 3
  • STM32控制舵机及其原理

    大家先看懂这张图 我们就是根据这张图 实现定时器产生PWM控制舵机旋转 本次采用的STM32F1单片机控制S90舵机 直接COPY就可以使用 经过本人实测 采用PB13 定时器1PWM通道1实现本次的控制 从0度控制180度旋转改变占空比实
  • Spring Security3.1 最新配置实例 .

    这几天学习了一下Spring Security3 1 从官网下载了Spring Security3 1版本进行练习 经过多次尝试才摸清了其中的一些原理 本人不才 希望能帮助大家 还有 这次我第二次写博客啊 文体不是很行 希望能让观看者不产生
  • 敏捷项目编程:从乙方视角探讨

    敏捷开发是一种迭代 增量的软件开发方法 强调快速响应变化 持续交付和紧密合作 在敏捷项目中 编程是一个至关重要的环节 乙方 开发团队 在其中扮演着关键的角色 本文将从乙方视角出发 详细探讨敏捷项目编程的相关内容 并提供相应的源代码示例 敏捷
  • 关于Qt5.12.0找不到Qmysql的问题解决方法

    这是第二次需要自己编译Qt库 上一次是需要用到MQTT Qt找不到库也是需要自己编译 项目需要用到数据库 学习途中发现了一些问题 故记录一下 网上看了是因为新版不支持mysql了 需要自己编译 本文章的解决方法就是通过编译mysql 如下图
  • AntD-tree组件使用详析

    目录 一 selectedKeys与onSelect 官方文档 代码演示 onSelect 注意事项 二 expandedKeys与onExpand 官方文档 代码演示 onExpand 注意事项 三 loadedKeys与onLoad和o
  • 【whr的深度学习总结1】使用Matconvnet训练imbalance全连接网络

    matconvnet只提供了卷积函数 并没有提供全连接函数 那么如何在卷积函数上训练全连接呢 首先 我们要清楚一件事 卷积核为1 1同时步长是1的网络就是全连接 那么配置网络的时候就只需执行卷积函数 同时配置卷积核的大小就可以 这是我的配置
  • 13种老人不适合带孩子_如果是这3种老人,并不建议他们带孩子,不是偏见是为孩子好...

    文 勤亲妈妈 文章原创 欢迎个人转发分享 孩子是一个家庭生命的传承 是全家人的 掌中宝 有了孩子之后 不只是父母的心思和注意力会放在孩子身上 就连老人对孩子也是非常的宠爱 都说 隔辈儿亲 隔辈儿亲 老人对孩子的爱是毋庸置疑的 上了年纪之后
  • uniapp如何使用uview中的loadmore上拉加载

    效果 引入loadmore 首先搜索和tab的样式
  • 016 Java中 int、Integer和 new Integer() 使用==比较

    Java中 int Integer和 new Integer 使用 比较 int则是java的一种基本数据类型 其定义的是基本数据类型变量 Integer是int的包装类 其定义的是引用类型变量 基本数据类类型存的是数值本身 引用类型变量在
  • React Navigation 5.x第八章 导航器的生命周期

    在之前的章节中 我们学会了使用stack导航器 其有两个页面 Home和Details 并且知道如何使用navigation navigate RouteName 在两个路由之间跳转 在这篇文章中 我们主要了解当我们离开Home页面的时候都
  • STOMP原理与应用开发详解

    本文首发微信公众号 码上观世界 STOMP概述 我们已经知道WebSocket是基于TCP协议之上的应用层协议 在 WebSocket API 中 浏览器和服务器只需要完成一次握手 两者之间就直接可以创建持久性的连接 并进行双向数据传输 W
  • openGL环境贴图

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 代码 1 主程序 二 着色器程序 1 顶点着色器 2 片元着色器 运行效果 总结 源码下载 前言 在照明和材质章节中 我们考虑了物体的 光泽 然而 我们从未对非常闪亮的
  • 日撸leetCode三道题---Day1---二分查找

    二分查找时间复杂度为O log n 针对有序数组 定义查找区间 var low 0 var high n 循环查找 while low
  • 深入剖析HTTP和HTTPS代理在爬虫中的应用价值

    在当今信息时代 数据是无处不在且极其宝贵的资源 对于从互联网上获取大量结构化或非结构化数据的需求而言 网络爬虫成为一种强有力的工具 然而 在实际操作过程中 我们常常会面临许多挑战和限制 其中一个主要问题就是目标网站可能会设置反扒机制来阻止自
  • 电话悬浮代码

    代码
  • 小娜老师的讲义-搭建私人镜像

    前言 之前我们讲docker的基本命令的时候 提到过docker pull 每次也是让大家直接从官方的registry 仓库 里面把需要用到的基础镜像pull下来 那我现在不想用官方的了 我就像用我自己已经做好的 而且其他同网段的同事们都可

随机推荐

  • 网络安全第1章课后题 网络安全概论

    1 选择题 1 计算机网络安全是指利用计算机网络管理控制和技术措施 保证在网络环境中数据的 完整性 网络服务可用性和可审查性受到保护 A 机密性 B 抗攻击性 C 网络服务管理性 D 控制安全性 2 网络安全的实质和关键是保护网络的 安全
  • 【ACWing 每日一练之接龙数列】

    题目 对于一个长度为 K的整数数列 A1 A2 AK 我们称之为接龙数列当且仅当 Ai的首位数字恰好等于 Ai 1的末位数字 2 i K 例如 12 23 35 56 61 11 是接龙数列 12 23 34 56不是接龙数列 因为 56的
  • Macbook pro如何设置触控栏touch bar?

    打开 系统偏好设置 点击打开 键盘 点击 自定功能栏 打开 自定功能栏 此时鼠标在屏幕下方继续下移就可以到触控栏 也可以将自己喜欢的功能按住拖到触控栏 如我就加上了锁屏 并将Siri移出触控栏Touch bar 因为总误触到它
  • mysql递归查询

    本文转载 文章底部有我实践过程中遇到的问题总结博客 希望能够帮到大家 2021SC SDUSC 我是以山东济南的行政区划作为示例的 数据库是MySQL 话不多说 直接上示例代码 目录 1 建表脚本 1 1 建表 1 2 插入数据 2 递归查
  • 小程序推广:微信公众平台可自由挂载小程序

    公众号可挂载任意小程序 在公众号挂载小程序的时候 会出现小程序搜索的页面 这里可以搜索所有微信上可被搜索的小程序 这意味着 公众号无需绑定小程序 可实现自由挂载 挂载的形式支持4种 其中小程序码是全新的挂载形式 选择后会释放该小程序码到公众
  • 【Unity Optimize】Unity中的优化工具和优化方法介绍

    目录 1 Unity项目优化的必要性 2 Unity自带的优化工具 2 1 Profiler窗口 Profile Analyzer 2 2 Stats窗口 2 3 Frame Debugger窗口 3 其他优化方法 3 1 批处理 Batc
  • MinGW下载和安装详细步骤 及 环境配置

    一 下载 点击 这里 进入官网下载最新版本的MinGW 这里下载的是Windows32位 但MinGW的所有软件都将在64位Windows平台上执行 所以32位和64位都是一样的 二 安装 1 下载完成后 双击程序进行安装 2 点击 Ins
  • Oracle学习总结09——表的操作

    1 创建数据表 createtable 代码手敲 且增加注释 问题 字段为系统默认日期怎么定义 创建students表 create table students stuno number 10 not null stuname varch
  • ExtJs4.0环境搭建及spket安装 .

    这些天在边学边用ExtJs 避免不了要写相关的代码来加深对这个框架的理解 那么首先就得搭建一个ExtJs的环境 1 开发环境 Microsoft Windows XP Version 2002 Service Pack 3 Eclipse
  • 华为OD机试 - 整型数组按个位值排序(Java)

    题目描述 给定一个非空数组 列表 其元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素 相对位置保持不变 当数组元素为负值时 十进制最低位等同于去除符号位后对应十进制值最低位 输入描述 给定一个非空数组
  • 深入 Spring 系列之静态资源处理

    深入 Spring 系列之静态资源处理 1 背景 前一段时间 WebIDE 开源的过程中 无意间接触到 webjars 觉得比较有趣 于是研究并整理了一下 webjars 是将前端的库 比如 jQuery 打包成 Jar 文件 然后使用基于
  • 什么是IQ信号, IQ调制又是怎么回事?

    在现代无线通信中 IQ调制属于标准配置 经常应用于通信系统的信号调制和解调环节 IQ调制的应用简化了通信设备的硬件结构 同时提高了频谱资源的利用效率 提高了信号传输的稳定性 让我们先来看看什么是IQ信号 IQ信号又称同向正交信号 I为in
  • linux grep 多个文件,Linux多文件查找工具之grep

    1 简介 grep全称Global Regular Expression Print 全局正则表达式打印 在这里面提到了三个关键词 我们逐个进行分析 这样有助于我们理解 grep这个命令的作用 1 global说明该命令可以用于所有用户 交
  • VHDL——含异步清零和同步使能的加法计数器源程序

    library ieee use ieee std logic 1164 all use ieee std logic arith all use ieee std logic unsigned all entity counter is
  • Kubernetes YAML 文件 详细解释

    To deploy Dashboard execute following command kubectl apply f https raw githubusercontent com kubernetes dashboard v1 10
  • C语言实现冒泡排序和快速排序

    写在前面的话 以排升序为例 目录 冒泡排序 单趟 循环 优化 快速排序 单趟 递归 优化 不足 冒泡排序 通过重复地走访过要排序的元素列 依次比较两个相邻的元素 如果顺序错误就把他们交换过来 走访元素的工作是重复地进行 直到没有相邻元素需要
  • mongodb搭建Replica Set

    1 创建数据文件夹 mkdir p data master mkdir p data slaver mkdir p data arbiter 效果 data 文件夹包含 arbiter master slaver 三个文件夹 2 创建日志存
  • STM32无人机-四轴四元数姿态解算与卡尔曼滤波

    四轴四元数姿态解算 MPU6050是一种非常流行的空间运动传感器芯片 可以获取器件当前的三个加速度分量和三个旋转角速度 什么是四元数 这部分很难 新手知道四元数的功能是将 6 轴传感器数据转化为三轴姿态角度数据即可 四元数解算程序店家已经封
  • 机器学习——决策树+剪枝(适用ID3与C4.5)

    问 标准的ID3算法支持剪枝操作 答 错误 标准的ID3算法不支持剪枝操作 该算法通过递归地构建决策树 在每个节点上使用信息增益作为判定条件进行特征选择 直到遍历完所有特征或者将数据集划分为同一类别的样本 ID3算法容易产生过拟合现象 剪枝
  • 记录一次NestedScrollView嵌套RecyclerView再嵌套RecyclerView的坑

    由于要做一些复杂的界面 需要在NestedScrollView下嵌套RecyclerView 在RecyclerView的条目中又有一个横向的RecyclerView 在 gt Android 7 0系统当中运行是显示正常的 但是在低于7