android疑难问题收集

2023-05-16

1.自定义ViewGroup实现折叠展开,离奇的折叠后又展开
  在一个布局里面我参考网络代码实现了一个折叠展开的自定义viewgroup,其实是调用layout方法实现的折叠和展开,最近出现一个bug,就是折叠后它自己又会自动展开,后来打log发现是整个页面的view hierarchy都在执行onLayout,可是为什么会影响这个自定义的viewgroup呢? 难道是因为它的父亲重新layout,又恢复了它的真实宽高吗?那该怎么解决呢?百思不得其解……

答案:layout viewgroup自身,之前一直工作正常,现在跟他一个同级别的viewgroup 有一个手势拖动操作,引起了这个折叠的viewgroup在折叠状态又被展开,我今天晚上,将他们俩的上层relativeLayout自定义了一下,重写onLayout方法,super调用父类的onLayout方法,发现正常情况下,relativeLayout的onLayout方法并没有打印Log;当那个手势拖拽viewgroup拖动的时候触发了他们俩上层的relativeLayout方法的onLayout方法的执行,于是我就将relativeLayout父类的onLayout方法代码复制了过来,加了一个boolean变量,第一次执行,使系统正常执行,onLayout结束后修改boolean变量的值,后续在onLayout方法里面根据id进行判断,当是这个折叠展开viewGroup就不再调用layout,这时候,奇迹出现了,手势拖动的那个同级别viewGroup不再影响了,嘿嘿黑,感谢大佬的回复,解决问题真开心鸣谢:小缘大佬

2.最近使用FrameLayout出现的问题
  FrameLayout里面一个Button,Button设置了backgroud属性为一个图片,一个ImageView设置了src属性,也是一张图片,ImageView位于Button 的上面,也就是堆叠在Button 的上面,可是却发现,ImageView的图片是看不到的,只有Button在显示,ImageView被挡住了,可是如果去掉Button的background属性,ImageView就堆叠在Button上面 了,咋回事呢,FrameLayout里面不都是后面的View堆叠在前面的View上面吗?

3.android手机的状态栏是什么?
  当一个Activity启动,默认情况是有状态栏的,通过获取窗口的宽度和高度发现和手机的分辨率是相同的,难道状态栏也是一个窗口吗?它是叠在activity的window的上面吗?那么activity的window显示内容的时候岂不是要避开状态栏的高度,免得被它遮挡呢?是这样的吗?问题好多……

4.RecyclerView Adapter需要性能优化吗?
  自从RecyclerView出现以后,涌现出了许许多多的第三方封装Adapter,功能十分的强大,我却有一个疑惑至今没有解开,在ListView时代为了提高列表的性能,Adapter的view 在inflate之后保存在convertView的tag中,可是在RecyclerView的adapter中却从未强调过这件事情,这是为什么呢?难道RecyclerView有什么黑科技,不怕重复创建对象带来的性能损耗吗?查看第三方的adapter实现也没有发现对这个问题的处理……

5.Android Studio的R文件在什么地方呢?
至今没看到过

  • 5.1inflater.inflate()三个参数的方法,第三个参数attachToRoot是起什么作用的呢?

JetPack组件

Navigation

单Activity多Fragment项目结构,使用navigation组件发现,在实现fragment页面跳转的时候,其实目标fragment组件也是会产生多个实例的,然而有的时候需求却需要使用原有旧的实例,这个时候,what should I do?

LifeCycle

什么是LifeCycle?LifeCycle存在的意义是啥?

6.关于封装
  之前看到一些封装好的基类,里面定义了抽象方法,在具体方法里面可以调用抽象方法,这个有些吃惊,抽象类竟然可以继承非抽象类,也很吃惊。这样操作后,即可实现,通用操作提取到base类中,非通用操作,通过自类重写抽象方法进行实现,base类负责将自类的实现进行调用,简化代码的编写,真是抽象类的妙用。原来抽象类是这么用的

7.Java的一些别扭的地方
(1)Java接口不可以实例化,可是在代码中你却能看到如

new Runnable(){}

的代码。Java:这不过是创建实现Runnable的匿名类实例而已
(2)Java不支持多继承,却又能看到一个interface继承多个interface
Java:接口是特例,不属于多继承。
8.源代码如何研究和阅读
最近遇见了一个Fragment的问题,在一个Activity页面中,某个布局并不属于这个activity,但是有一个需求是将一个Fragment添加到这个不属于activity的布局里面,然而使用TransactionManager却无论如何都添加不进去,报错是no id for view 0x…报到了FragmentContainer的一个方法里面,到底该如何追踪源码找到具体的错误呢?[苦涩]
  看到许多大佬分析源码的教程,内心非常震撼,说实话,源码就像汪洋大海,如果没有正确的方法很容易迷失在其中,从而丧失继续研究的信心,提纲挈领,理清脉络,不纠结于细枝末节,当需要看某个具体功能的实现,再去看细节,这一点道理很重要,然而明白道理容易,具体做起来,又觉得老虎吃天,无从下口了。还有就是源码的调用跳转流程,有时候感觉分析不太明白,如果能调试起来走一遍,恐怕会更准确,只是系统源码有时候调试跟不进去。[苦涩]2021又快结束了……

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

android疑难问题收集 的相关文章

  • 双线性插值算法

    图像的缩放很好理解 就是图像的放大和缩小 传统的绘画工具中 有一种叫做 放大尺 的绘画工具 xff0c 画家常用它来放大图画 当然 xff0c 在计算机上 xff0c 我们不再需要用放大尺去放大或缩小图像了 xff0c 把这个工作交给程序来
  • JAVA字符串判空的方法

    1 记录自己工作中的问题 xff1a 针对某些字符串进行判空时 xff0c 出现的BUG StringUtils hasText StringUtils hasText null 61 false StringUtils hasText 3
  • 出现次数最多的小写字母

    出现次数最多的小写字母 题目描述 输入一个由小写字母组成的字符串 xff08 字符数量 lt 61 100 xff09 xff0c 输出出现次数最多的小写字母 注意 xff1a 如果有多个小写字母出现的次数一样多 xff0c 则输出ASCI
  • EFCore 从入门到精通-6(详谈查询)

    目录 1 初始准备1 1 工具准备1 2 程序准备1 3 准备数据 2 基础回顾以及探寻2 1 单个查询2 2 查询所有的数据 2 3 筛选和过滤查询2 4 探究原理 3 客户端评估和服务端评估3 1 IEnumerable And IQu
  • 【Android解决方案】在onResume里调用getIntent()得到的是上一次数据

    我有四个媒体分类 xff08 Record xff0c Music xff0c Video xff0c Picture xff09 xff0c 里面除了数据不同 xff0c 界面都是相似的 xff0c 所以我把它们用一个MediaActiv
  • pycharm运行停止快捷键

    运行 shift 43 f10 停止 ctrl 43 f2
  • RecyclerView预加载

    private boolean isLoadingMore 61 false 是否预加载 recyclerView addOnScrollListener new RecyclerView OnScrollListener 64 Overr
  • 自定义右侧弹出dialog并填充状态栏

    DialogUtil xff1a public class DialogUtil private Dialog dialog private View inflate public void showRightDialog Context
  • Android监听横竖屏切换

    偶然在项目中用到播放视频时 xff0c 需要横屏将视频全屏播放 xff0c 所以需要监听屏幕的横竖屏切换事件 ConfigChanges xff0c 用于捕获手机状态的改变 xff0c 当横竖屏切换 xff0c 屏幕尺寸变化 xff0c 弹
  • SVN利用 AS 进行代码对比的方法

    第 1 种 xff1a 如果我们是从 SVN 检出的项目 xff0c 并且想比较本地代码与从 SVN 检出时的代码相比都有那些区别 xff0c 可以按如下步骤操作 如上图所示 xff0c 在代码编辑区 xff0c 右键唤出功能菜单 xff0
  • ADB操作命令详解大全

    ADB 操作命令详解及用法大全 Lucas liu的博客 CSDN博客
  • Android Studio build下面找不见assembleDebug选项解决办法

    在开发Android的AAR库时 xff0c 习惯点击右侧gradle面板的Task任务进行编译 xff0c 如选择assembleDebug或assembleRelease进行编译 xff0c 如下 xff1a 说明 xff1a 其中as
  • android 注销到登陆界面实现

    code class java span class hljs keyword public span span class hljs class span class hljs keyword class span span class
  • 中兴2016校招软件在线笔试题

    面试经验可以参考我的另一篇文章 xff0c 是7月初参加openday面试的 xff0c 文章链接http blog csdn net dandelion1314 article details 47009585 招聘群里有人发的招聘时间安
  • 设置AndroidStudio左侧和右侧的字体

    1 File Settings Appearance amp Behavior Appearance xff0c 右边Override default fonts by not recommended 2 设置代码大小 xff1a File
  • Android下载网络资源文件

    直接上代码 xff1a lt uses permission android name 61 34 android permission WRITE EXTERNAL STORAGE 34 gt lt uses permission and
  • 出现:trying to draw too large(138078000bytes) bitmap:错误时

    这里就不翻译了 xff0c 意思就是说你将高分辨率图片放在了低分辨率文件夹下 例如 xff1a 图片的分辨率是属于xxhdpi的 xff0c 而你将这张图片放在了drawable xhdpi或者比这个还低的文件夹下 xff0c 就会报这个错
  • Android把图片压缩到一定大小并不失真

    本文转载只供参考 一 图片压缩方式 图片按比例大小压缩方法 64 param srcPath xff08 根据路径获取图片并压缩 xff09 64 return public static Bitmap getimage String sr
  • Android 动态设置TextView的位置

    RelativeLayout LayoutParams layoutParams 61 new RelativeLayout LayoutParams 40 40 宽高 layoutParams setMargins int dstX 20
  • 神经网络应用较多的算法,图卷积神经网络应用

    神经网络原理及应用 神经网络原理及应用1 什么是神经网络 xff1f 神经网络是一种模拟动物神经网络行为特征 xff0c 进行分布式并行信息处理的算法 这种网络依靠系统的复杂程度 xff0c 通过调整内部大量节点之间相互连接的关系 xff0

随机推荐

  • Java泛型学习

    纯属个人理解 xff0c 代码参考自视频 用途 xff1a 1 用于集合容器中 xff0c 可以使集合记住存储数据的类型 xff0c 防止频繁转换类型可能导致的ClassCastException 用于javac编译器的类型检查 xff0c
  • Java反射学习

    文字和代码来源于视频 反射 xff0c 通过它我们可以得到一个Java类的全部信息 xff0c 可以调用类的普通方法 xff0c 构造方法 xff0c 对类进行实例化 xff0c 操作类的属性 类中的所有内容 xff1a 属性 构造方法 普
  • 面试题之反转单向链表

    题目为 xff1a 将一个单向链表反转 xff0c 写出算法步骤或代码 懵批了 今学习如下 xff0c 文章代码参考https blog csdn net K346K346 article details 93371829 xff0c 感谢
  • 冒泡排序总结

    本文内容和代码均来自于 漫画算法 xff0c 小灰和大黄的对话 xff0c 非常有趣味的一本书 现理论结合实践 xff0c 做一下测试 span class token keyword private span span class tok
  • net6的Web MVC项目实现限流功能

    原理 xff1a 利用MemoryCache服务组件 xff0c 记录用户最后一次访问接口的时间 xff0c 如果本次访问距离最后一次访问不超过1秒 xff0c 提示用户访问过于频繁 xff0c 否则 xff0c 接口可以正常访问 然后利用
  • 快速排序总结

    文章内容和代码来自 漫画算法 和数据结构教材 现进行一下代码编写练习 1 双边循环法 span class token comment 双边循环法 xff0c 从左右两端分别向中间进行比较和交换数据 递归实现 span span class
  • 堆排序总结

    本文内容来源于 漫画算法 和数据结构教材 这里提到的堆是一个二叉堆 xff0c 本质上是一颗完全二叉树 堆排序只需要一个记录大小的辅助空间 1 java实现 span class token comment 下沉调整 64 param ar
  • 计数排序

    本文内容和代码来自 漫画算法 之前练习的冒泡排序 鸡尾酒排序 快速排序 堆排序都是基于元素比较和位置元素交换实现的 xff0c 有一些特殊的排序并不基于元素比较 xff0c 如计数排序 桶排序 基数排序 以计数排序来说 xff0c 这种排序
  • 桶排序

    本文内容和代码来源于 漫画算法 针对计数排序的局限性 xff0c 桶排序做出了弥补 xff0c 时间复杂度同样是线性级 类似于计数排序所创建的统计数组 xff0c 桶排序需要创建若干个桶来协助排序 那么桶排序中所谓的 桶 xff0c 又是什
  • 归并排序

    本文内容和代码来源于数据结构教材 归并排序 Merging Sort 是又一类不同的排序方法 34 归并 34 的含义是将2个或2个以上的有序表组合成1个新的有序表 无论是顺序存储还是链表存储结构 xff0c 都可在O m 43 n 的时间
  • 插入排序

    文章内容来源于数据结构教材 C语言版 教材讲解了4种插入排序算法 xff0c 分别为 1 直接插入排序 2 折半插入排序 3 2 路插入排序 4 表插入排序 还有一个希尔排序 属于插入排序分类 本文只将1 2 xff0c 两种算法进行了实践
  • 希尔排序

    本文内容来源于数据结构教材 C语言版 希尔排序 Shell s Sort xff0c 又称缩小增量排序 Diminishing Increment Sort xff0c 它也是一种属插入排序类的方法 xff0c 但在时间效率上较前几种插入排
  • Java swing绘制柱状图和饼图

    15 14编写程序 xff0c 使用条形图显示作业 平时测验 其中考试和期末考试占总成绩的百分比 假设作业占20 用红色显示 xff0c 平时测验占10 用蓝色显示 xff0c 其中考试占30 用绿色显示 xff0c 期末考试占40 用橙色
  • Java注解(Annotation)学习

    xff08 本文内容来源于疯狂Java讲义 xff0c 感谢 xff09 注解 Annotation Annotation是代码里的特殊标记 xff0c 这些标记可以在编译 类加载 运行时被读取 xff0c 并执行相应的处理 通过使用注解
  • Java Swing制作古老的打砖块游戏

    最近研究了一下古老的Java Swing xff0c 研究之余 xff0c 突发奇想开发了一个打砖块小游戏 首先看一下效果图 具体过程 1 游戏框架搭建1 1步骤 2 开发过程2 1各种游戏对象的绘制2 2游戏对象的运动2 3小球和砖块的碰
  • 局域网下yum代理配置

    需求背景 由于公司局域网内无法连接外网 xff0c 只有一台服务器能连接外网 xff0c 可选择搭建squid作为代理 xff0c 供无法访问外网的服务器 xff0c 安装软件使用 安装Squid yum install y squid 配
  • AndroidX迁移和吐槽

    最近引入一个第三方 xff0c 需要使用androidx扩展库 xff0c compile后发现与旧的support库无法兼容 xff0c 于是逐个的把support的库换成了androidx系列 xff0c 倒腾半天 xff0c 失败无数
  • Android中的事件

    有内容参考了别人的文章 xff0c 感谢作者 Input Events Event Listeners Event Handlers Touch Model Handling Focus https developer android co
  • Ubuntu19.10/20.04安装记录

    安装过程 官方网站下载 xff0c 搜索引擎搜索Ubuntu history version 找到19 10 xff0c 下载速度略慢 xff0c 大小大约2 3G 在Windows 上面使用UltraISO 试用版即可 刻录到u盘即可 重
  • android疑难问题收集

    1 自定义ViewGroup实现折叠展开 xff0c 离奇的折叠后又展开 在一个布局里面我参考网络代码实现了一个折叠展开的自定义viewgroup xff0c 其实是调用layout方法实现的折叠和展开 xff0c 最近出现一个bug xf