【Android】在渲染生效前提前测量View大小

问题

Android的UI机制是基于MessageHandler的,View并不会在添加后就会被立刻测量渲染出来

但有时我们需要动态去计算布局,希望在添加View时,就能知道这个View的高度

方法

此时,我们可以手动去调用measure方法,来测量View大小

measure方法需要提供两个spec,我们根据实际情况自己去创建

代码
kotlin 复制代码
view.measure(
  MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
  MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
)
// optional
view.layout(0, 0, view.measuredWidth, view.measuredHeight)
view.requestLayout()
view.invalidate()
相关推荐
2501_916007476 分钟前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
Android打工仔7 分钟前
Kotlin 协程源码解析:协程是如何切换线程的?
android·kotlin
mmsx8 分钟前
Android GIS系列 内存加锁、SQLite 开事务:矢量数据集双层并发设计
android·性能优化·app
Godikov11 分钟前
没有 adb 怎么排查接口问题?给 OkHttp 加一个"永不炸"的文件日志拦截器
android
邪修king1 小时前
Re:Linux 系统篇(三十四):进程间通信开篇Chapter1 —— 匿名管道 pipe 深度拆解与代码实战
android·linux·运维·开发语言
AFinalStone1 小时前
Android7 SystemUI 源码解析(一)全景概览与架构设计
android·systemui
2501_916008892 小时前
如何实现iOS App代码混淆:SwiftShield使用指南
android·ios·小程序·https·uni-app·iphone·webview
恋猫de小郭2 小时前
AndroidX 新增 Security State ,支持可编程的系统安全状态查询
android·前端·flutter
AFinalStone3 小时前
Android7 SystemUI 源码解析(六)QuickSettings快捷设置面板
android·systemui
Kapaseker3 小时前
你有搞明白 Volatile 什么意思吗?
android·kotlin