- 博客(6)
- 收藏
- 关注
原创 RecyclerView源码分析(三)测绘流程下篇
上一篇从RecyclerView的源码牵出了测量和布局的核心逻辑都在dispatchLayoutStep系列方法中。这篇我们就分析下dispatchLayoutStep系列方法。dispatchLayoutStep1//布局的第一步; - 处理适配器更新 - 决定应该运行哪个动画 - 保存有关当前视图的信息 - 如有必 //要,运行预测布局并保存其信息private void dispatchLayoutStep1() { mState.assertLayoutStep(State
2021-10-19 14:11:55
182
原创 RecyclerView源码分析(二)测绘流程上篇
说到安卓的测绘流程,肯定会想到安卓View绘制三大流程,measure、layout、draw。通过分析View的这三大流程,就可以大概洞悉一个View是怎么从无到有的。万变不离其踪,所以分析RecycleView也按照这个思路进行。Measure分析Measure过程,我们直接查看OnMeasure方法。这里我们由高层到低层逐步分析每一个部分。 @Override protected void onMeasure(int widthSpec, int heightSpec) {
2021-09-27 10:36:59
320
原创 RecyclerView源码分析(一)为什么使用RecyclerView
分析RecycleView源码的目的RecycleView作为每一个App大概率都会使用的控件,重要性可见一斑。而这个控件使用起来是非常简单的,但是了解其中的原理机理也是很重要的。我们可以从容的解决面临的玄学问题。这系列文章的主脉络了解RecyclerView,我们肯定要从大的主干看起,然后看看插在他身上的各种功能组件,然后再从整个控件整体架构上进行理解RecyclerView。这个主干就是RecycleView作为一个普通的UI控件,如何实现可滑动可复用列表的功能。这里我们就有很多问题,比如,怎么
2021-09-22 23:08:28
139
原创 LeetCode二叉树专题 (3) 对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。解题思路递归解法根据树型知识里描述的,如果使用递归解决这道题,我们需要先找到子问题,再通过不断的递归这个子问题,最后因为限制条件而中止。这道题的子问题是什么呢,如果一颗树是对称的,那么他的左右子树肯定是对称的。得到这样的代码。class Solution { public boolean isSymmetric(TreeNode root) { return isSYM(root.left,root.right); .
2020-07-13 11:10:45
136
原创 LeetCode二叉树专题 (2) 相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。解题思路这道题的解题思路比较简单,就是同时遍历两颗树的问题,并比较每个遍历的结点的值是否相等即可。问题就变成了怎么遍历,根据树型知识)里描述的,我们有很多种遍历的方法可以选择,通过深度优先和广度优先都可以,每种优先都可以使用递归和迭代实现。先看递归解决方案递归解法先找子问题,两颗树相同,就是根节点相同,并且左右子树也符合这个要求,那么子问题就是每个遍历到的结点都相同。终止条件.
2020-07-12 18:57:58
295
原创 LeetCode 二叉树专题 (1)二叉树知识 和 解题框架
算法题中树相关的题目是相对比较难的,同时在开始刷算法题时,也最好先从树型题刷起,因为他的解题思想对以后各种题型都是有帮助的。在对与树型相关的题目我们多练习发现还是有解题框架我们可以套用的。本篇先简单介绍一下树型数据结构的定义,然后讲解下树形题的大致解体思路。在面对一个数据结构时,我们要看他的存储和遍历,毕竟数据结构就是为了方便我们遍历而存在的。树定义表示逻辑上的一对多关系,每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个..
2020-07-10 10:01:14
301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人