invalidate和requestLayout、postinvalidate方法使用说明
来源:互联网 发布:win8 mac地址修改器 编辑:程序博客网 时间:2024/06/08 07:04
invalidate
当View的显示内容发生改变,比如状态(enable,focus),背景,显隐发生改变等,且新显示内容不影响View的大小、位置,则只需调用invalidate方法。调用invalidate方法只会执行onDraw方法
需要在UI线程调用
postinvalidate
作用和invalidate一样
可以在子线程调用
requestLayout
当View的宽高已经不再适合现在的区域时,可以调用requestLayout方法要求parent view重新调用它的onMeasure onLayout来重新布局,并不会调用onDraw方法
若View宽高、位置发生改变而显示内容不变,则只需调用requestLayout方法
需要在UI线程调用
总结
View(非容器类)调用invalidate方法只会重绘自身,ViewGroup(容器类)调用则会重绘整个View树。
View(非容器类)调用requestLayout方法只会重新布局自己,ViewGroup(容器类)调用则会重新布局整个View树。
若View的大小、位置、内容都发生改变,则需调用requestLayout和invalidate。
其它
Invalidate(false)不擦除背景,直接在原基础上画,不会出现闪屏
Invalidate(true)擦除背景,再重新画,会出现闪屏(默认是true)
UpdateWindow()立即重绘,调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。
阅读全文
0 0
- invalidate和requestLayout、postinvalidate方法使用说明
- Android invalidate() 、postinvalidate()和requestLayout()
- invalidate、postInvalidate和requestLayout区别
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate 和 postInvalidate 的异同
- requestLayout, invalidate和postInvalidate的异同
- View 中requestLayout 和 invalidate,postinvalidate() 区别
- 重绘requestLayout() invalidate()和postInvalidate()
- invalidate() vs postInvalidate() vs requestLayout()
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- 安卓requestLayout, invalidate和postInvalidate的区别
- 自定义View重绘使requestLayout, invalidate和postInvalidate的异同
- arm linux RouterSploit
- 状态栏配置
- Andrew Ng 深度学习课程Deeplearning.ai 编程作业——deep Neural network for image classification(1-4.2)
- QT 构建时错误
- 2017-11-02
- invalidate和requestLayout、postinvalidate方法使用说明
- Python 常用面试题
- 多态中继承调用的细节
- Java 往文件中写数据,新写入的数据总是覆盖原有数据,实现追加功能
- iOS 二维码扫描登录
- 对serlvet的一些认识
- ReentrantLock重入锁
- UIAutomator2.0详解(UIDevice篇----获取设备名称和Package名称)
- gradle.build中dependencie依赖由compile变为implementation