
View的invalidate()流程
View的invalidate()流程自定义View的时候常用到invalidate()方法,为了刷新View以重新绘制。和requestLayout()不同的是,调用invalidate()后只会回调调用View的draw()方法;而调用requestLayout()则会从上到下重新测量、布局一遍。 应根据实际情况选择使用invalidate()还是requestLayout(),如果只需要刷新
加入于 2019-10-06
不忘初心的阿甘
598
文章
41
评论

View的invalidate()流程自定义View的时候常用到invalidate()方法,为了刷新View以重新绘制。和requestLayout()不同的是,调用invalidate()后只会回调调用View的draw()方法;而调用requestLayout()则会从上到下重新测量、布局一遍。 应根据实际情况选择使用invalidate()还是requestLayout(),如果只需要刷新

View的requestLayout()流程requestLayout()常用来对View重新进行测量、布局和绘制。当View需要更新当前的布局时,就向父布局申请重新布局。虽然是ViewParent接口中定义的方法:但其完整实现却在View中,而不在ViewGroup类里(后面会讲到):在继续跟随源码剖析requestLayout()流程之前,先搞清楚View中的mParent从哪来?1、View

免费的录屏软件 oCam找到一个免费而且简洁的视频录制软件:oCam,之前录视频用的是Camtasia不仅付费而且操作麻烦。1、下载安装从Softonic下载oCam安装:oCam Download。2、界面功能界面简洁,菜单中有三个常用的录制场景:视频录制、游戏录制、音频录制,一键录制非常方便。日常录制视频不需要那么多眼花缭乱的菜单,只需录制、区域选择、声音设置、编码设置这几个。使用默认选项录制

简单快速的对象存储库:Paper(二)在前面简单快速的对象存储库:Paper(一)中介绍了Paper库及其简单使用,Paper库代码不多,源码也易于阅读,主要理解其设计。简要概括Paper设计如下:1、获取Book实例开发者无需关注Book实例的构造,只需通过Paper提供的几个方法获取Book实例:①获取指定名称的Book,不能使用内部保留名称DEFAULT_DB_NAME②获取默认DEFAUL

简单快速的对象存储库:Paper(一)在GitHub上淘宝,最近又发现一个设计精巧而简单快速的存储库:Paper,可以考虑用来替代Preference。另一位牛人César Ferreira基于Paper,结合RxJava写了一个RxPaper2。GitHub:https://github.com/pilgr/Paper1、PaperPaper,正如其名:此库旨在让开发者存储对象数据,犹如在纸上写
Android Touch事件分发与MotionEvent详解Android开发中Touch事件的处理无处不在,从简单的OnClickListener到复杂的自定义View手势识别,理解Touch事件的分发机制是解决滑动冲突、优化交互体验的基础。本文将从MotionEvent的数据结构出发,系统梳理Touch事件从Activity到View的完整分发链路。1、MotionEvent数据结构Moti
Android ColorStateList 详解1、ColorStateList 概述ColorStateList 是 Android 中用于管理不同状态下颜色的类,它允许为 View 的不同状态(如按下、聚焦、禁用等)设置不同的颜色。ColorStateList 广泛应用于按钮、文本框等控件的颜色管理,是实现响应式 UI 的重要工具。核心特性: - 支持多种 View 状态的颜色定义 - 可以

UncaughtExceptionHandler 原理使用UncaughtExceptionHandler捕获运行时线程中发生的未捕获异常,可以极大的提高应用稳定性。UncaughtExceptionHandler使用很方便,参考异常捕捉:UncaughtExceptionHandler一文。1、线程异常传递当线程运行出现奔溃,JVM虚拟机会调用Thread的dispatchUncaughtExc

最好用的Git GUI工具:SourceTreeSourceTree作为老牌免费GUI工具,号称最好用的Git GUI工具。由Atlassian开发商出品,值得信赖。1、代码仓库管理SourceTree能方便的管理多个代码仓库。1.1、本地仓库本地已有的代码仓,可以直接拖到SourceTree中打开。如果需要查看远程代码仓,用SourceTree直接Clone一个到本地目录:1.2、远程仓库Sou