requestLayout, invalidate和postInvalidate的异同
来源:互联网 发布:广播电台广告投放数据 编辑:程序博客网 时间:2024/06/08 06:32
1、android中实现view的更新有几种方法?
你知道吗?其实android中实现view的更新有两种方法,一种是invalidate,另一种是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。
怎么说呢?Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 鉴于此,如果要使用invalidate的刷新,那我们就得配合handler的使用,使异步非ui线程转到ui线程中调用,如果要在非ui线程中直接使用就调用postInvalidate方法即可,这样就省去使用handler的烦恼。
2、requestLayout在什么时候用呢?
当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view(父类的视图)重新调用他的onMeasure onLayout来重新设置自己位置。特别是当view的layoutparameter发生改变,并且它的值还没能应用到view上时,这时候适合调用这个方法。
原文地址
0 0
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate和postInvalidate的异同
- requestLayout, invalidate 和 postInvalidate 的异同
- requestLayout, invalidate和postInvalidate的异同
- 自定义View重绘使requestLayout, invalidate和postInvalidate的异同
- Android绘制中requestLayout,invalidate和postInvalidate的异同
- Android invalidate() 、postinvalidate()和requestLayout()
- invalidate、postInvalidate和requestLayout区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- Android中Invalidate和postInvalidate和requestLayout的区别
- 安卓requestLayout, invalidate和postInvalidate的区别
- View 中requestLayout 和 invalidate,postinvalidate() 区别
- 重绘requestLayout() invalidate()和postInvalidate()
- invalidate和requestLayout、postinvalidate方法使用说明
- Ubuntu14.04 LTS更新源
- 剑指Offer:二进制中1的个数(JAVA)
- CPU的组成
- iOS应用跳转至app store 评分页
- ThinkAndroid框架
- requestLayout, invalidate和postInvalidate的异同
- 深入理解Java的接口和抽象类
- CloseHandle()函数的使用
- ActiveMQ的几种集群配置
- NavigationIcon设置点击监听
- LDR/STR
- 终于完成了一段代码!!!2016 第一段query
- poj 3304 Segments
- domino WebUploade不刷新页面上传多附件