View工作原理(二)导致View重建原因
导致View重建的原因有三个:
1、视图本身内部状态变化引起重绘;
2、view树内部添加或者删除子view;
3、View本身的大小及可见性发生变化。
这三种情况最后都直接或者间接的调用到了三个方法,invalidate()、requestLayout()和requestFocus(),而这三个函数最终都会调用到ViewRoot中的schueduleTraversals()方法,该方法发起一个异步消息,消息处理中调用performTraversals()开始对整个View进行重新遍历。
能导致调用invalidate()方法的包含三种情况:当应用程序改变视图显示属性时,调用setVisibility();当改变视图Selected状态时,调用setSelected();当改变视图Enable状态时,调用setEnable()。
导致调用requestLayout()方法的情况包括两种:当应用程序改变视图显示属性时,调用setVisibility(),由于显示或者不显示将影响其他兄弟视图的位置,因此会调用到requestLayout();第二种是应用程序直接或者间接调用该函数,间接调用是指应用程序调用了View类的其他函数,从而间接调用到requestLayout()。
requestFocus()一般由程序直接调用,间接调用是指当用户按“上/下”、“左/右”键时,相关的处理逻辑会间接的调用该方法。
View工作原理(二)导致View重建原因相关推荐
- 以太网及网络工作原理二
以太网及网络工作原理二 2.以太网工作原理 2.2.以太网数据帧 2.3.数据帧传输 2.4.交换机的工作原理 2.5.网线的分类 2.6.千兆以太网 2.6.1.千兆位以太网标准主要四种类型的传输介 ...
- View工作原理(一)事件传递原理详解
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 转载请说明出处:http://blog.csdn.net/ff20081528/article/details/17353869 ...
- View工作原理(三)视图大小计算过程(measure过程)
一.android中view的measure过程总概 视图大小计算的过程是从根视图measure()方法开始,接着该方法会调用根视图的onMeasure()方法,onMeasure()方法会对所包含的 ...
- View工作原理(四)view的layout过程
刚过完自己的本命年,新的一年希望自己有个新的开始,祝自己在新的一年里一帆风顺,同时也祝广大的朋友们新年新气象,收获多多! 一.android中view的layout过程总概 Layout过程其实就是父 ...
- view工作原理-计算视图大小的过程(onMeasure)
view的视图有两种情况: 内容型视图:由视图的内容决定其大小. 图形型视图:父视图为view动态调整大小. ### measure的本质 把视图布局使用的"相对值"转化成具体值的 ...
- Android学习笔记View的工作原理
自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...
- Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncTask,Binder的机,view的原理
目录 成员内部类.静态内部类.局部内部类和匿名内部类的理解,以及项目中的应用 哪些情况下的对象会被垃圾回收机制处理掉? Java中实现多态的机制是什么? String为什么要设计成不可变的? Obje ...
- android自定义view实现原理,android随笔之自定义View基本原理
前言: 在日常的Android开发中会经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件,今天先大致了解一下自定义控件的要求和实现的基本原理. 自 ...
- Redux相关知识(什么是redux、redux的工作原理、redux的核心概念、redux的基本使用)(十一)
系列文章目录 第一章:React基础知识(React基本使用.JSX语法.React模块化与组件化)(一) 第二章:React基础知识(组件实例三大核心属性state.props.refs)(二) 第 ...
最新文章
- java-第十一章-类的无参方法-计算器运算
- GitHub现在已支持函数定义跳转,妈妈再也不怕我记性差了
- docker之Dockerfile
- 01-Vue博客后台管理页面框架搭建
- autojsui界面关闭_autojs 第九次 ui界面交互获取
- 每个人对工作都会有自己的想法
- AIdl server端监听client是否掉线
- 计算机学术英语常见词汇短语总结
- 【Computer Organization笔记04】ALU的基本功能,1位ALU,位数扩展以及功能扩展
- 苹果Mac如何使用Tuxera NTFS 格式化磁盘?
- 网维无盘服务器错误代码,网维大师无盘环境INTER傲腾方案常见问题解答?
- android 开机优化,android5.0在开机优化应用的时候,怎么关闭优化强制启动
- 中望cad文字显示问号怎么办_中望CAD图纸显示乱码?如何快速解决字体问题
- 局域网SDN技术硬核内幕 三 从物到人——SDN走进园区网络
- linux内存使用率如何查看,linux内存使用率 linux查看内存
- Markdown从入门到精通(+软件推荐)
- 百度富文本编辑器配置使用
- 解决:VS2010 无法打开“****”,因为此版本的应用程序不支持其项目类型
- jieba分词算法总结
- 【NP问题】P问题,NP问题,NPC问题,NPH问题
热门文章
- 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中检测信号原理 )
- 【FFmpeg】ffmpeg 命令查询二 ( 比特流过滤器 | 可用协议 | 过滤器 | 像素格式 | 标准声道布局 | 音频采样格式 | 颜色名称 )
- 【集合论】二元关系 ( 定义域 | 值域 | 域 | 逆运算 | 逆序合成运算 | 限制 | 像 | 单根 | 单值 | 合成运算的性质 )
- 自己写的一个简单的购物车的登录购买
- [BZOJ5292][BJOI2018]治疗之雨(概率DP+高斯消元)
- 在QT中结构体快速从二进制文件中读取数据
- String 课后作业2
- hihocoder 1061.Beautiful String
- win7 无法复制粘贴
- ZOJ 1234 Chopsticks(动态规划)