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上时,这时候适合调用这个方法。

转载于:https://www.cnblogs.com/yaya25001/p/5615060.html

requestLayout invalidate postInvalidate相关推荐

  1. Android invalidate/postInvalidate/requestLayout 彻底厘清

    前言 前几篇分析了Measure.Layout.Draw 过程,这三个过程在第一次展示View的时候都会调用.那之后更改了View的属性呢?比如更改颜色.更换文字内容.更换图片等,还会走这三个过程吗? ...

  2. Android基础知识梳理

    文章目录 系统架构 应用层 应用框架层 系统运行库层 硬件抽象层(HAL) Linux内核层 补充 通信方式 Binder IPC原理 Binder原理 Socket handler 主线程中 子线程 ...

  3. Android面试:Invalidate、RequestLayout

    Invalidate/RequestLayout区别 先放上结论 requestLayout会直接递归调用父窗口的requestLayout,直到ViewRootImpl,然后触发peformTrav ...

  4. invalidate

    转载请注明出处:                前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 .同时真挚地向渴望了解      A ...

  5. android view强制重绘_android view 相关方法 layout draw 布局 重绘 | 学步园

    http://blog.csdn.net/az44yao/article/details/8208087 ViewGroup用onLayout实现view的自由移动 http://qq18715568 ...

  6. [Android5 系列二] 1. 全实例之控件(Widget)

    前言 android.view.View 视图类是widgets 的基类, 有很多的扩展类, 包括文本视图TextView.图像视图ImageView.进度条ProgressBar .视图组ViewG ...

  7. 2022新鲜出炉Android面试总结附真题+答案解析(京东、新东方、货拉拉...)

    前言 从我的面试情况来看,不要以为技术面试过了就稳了,hr会卡人(京东),审批会卡人(货拉拉),所以,面试的时候,要多面试几家,不要一棵树吊死. 1.技术面试,通过 9家: 千喜鹤(2面),广州星域( ...

  8. 2020年Andorid很详细的基础面试题

    android底层架构图 说下冷启动与热启动是什么,区别,如何优化,使用场景等. app冷启动: 当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用, 这个启动方式就叫做冷 ...

  9. 五年Android开发大厂面经总结,吐血整理2022Android面试题合集(符解析)你确定不看看?

    我毕业走出学校已有五年了,真想在回到大学时代,去谈一场轰轰烈烈的恋爱-- 而不会像现在是一个没人疼没人爱的单身狗! 在这个五年的时光里,我一直在Android 行业摸爬滚打,待过的公司差不多有五六家了 ...

  10. Android面试必备知识点总结

    本文原文(MarkDown)链接:https://github.com/DmrfCoder/interview/blob/master/Android/Android.md 文章目录 Android的 ...

最新文章

  1. 使用Python,OpenCV实现图像和实时视频流中的人脸模糊和马赛克
  2. Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
  3. 不要以自己的想法来推测别人的行为
  4. SpringAOP概念
  5. 【C++深度剖析教程14】经典问题解析三之关于赋值的疑问
  6. Spring学习(20)--- Schema-based AOP(基于配置的AOP实现) -- 配置切入点pointcut
  7. linux中如何让vim永久显示行号(永久显示+临时显示)
  8. ArcGIS紧凑型切片读取与应用2-webgis动态加载紧凑型切片(附源码)
  9. cmder添加到系统变量中_Cmder配置
  10. 魅族 计算机 隐藏,不知道你们发现了么,魅族Flyme6 超好用的隐藏功能
  11. 高德地图获取经纬度、高德地图坐标转为百度地图坐标
  12. 渗透测试 QA 收集
  13. 图论1:哥尼斯堡七桥问题的证明
  14. vue elementui 表格数据 时间格式转换
  15. 性别检测识别、年龄检测识别
  16. SpringBoot整合redis,启动提示错误信息: An exception was thrown by org.redisson.misc.RedissonPromise$$Lambda$682
  17. 机器学习与网络安全(一)
  18. 运营商拆除2G基站,老家的老人机还有信号吗?
  19. 怎么用计算机解锁,一加6T解锁BL教程,利用电脑进行一键解锁Bootloader操作
  20. tmux | 使用手册 (cheat sheet)

热门文章

  1. 怎么加入链接,可以让微信浏览器直接提示跳出另一个浏览器查看
  2. 【Python3 爬虫】12_代理IP的使用
  3. bug篇——mysql排序混乱问题
  4. [互联网面试笔试汇总C/C++-9] 实现赋值运算符函数-剑指offer
  5. javascript中的XML
  6. 数学归纳法证明求和公式
  7. iOS ViewController利用代理页面传值
  8. NHibernate Configuring
  9. MongoDB查询及索引优化
  10. [读书笔记] 机器学习 (一)绪论