【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()
相关推荐
叶羽西13 分钟前
Android15 Media框架JNI Interface调试
android
spencer_tseng23 分钟前
anti-screenshot (Android + iOS)
android·ios
程序员Android32 分钟前
Android 相机MFNR 拍照trace 分析
android·数码相机
2501_9159184133 分钟前
基于Mach-O文件的动态库与静态库归属方案及API扫描实践
android·ios·小程序·https·uni-app·iphone·webview
踏雪羽翼33 分钟前
android 实现google 订阅支付
android·支付·订阅·google订阅·谷歌支付
2501_9151063236 分钟前
iOS 证书无法跨电脑使用?签名迁移方法一文讲透
android·ios·小程序·https·uni-app·iphone·webview
Kapaseker40 分钟前
Window 内外藏机巧 旧岗新页见真章
android·kotlin
谪星·阿凯1 小时前
从XXE遗留疑问到Upload-Labs全通关:文件上传漏洞的溯源与实战突破
android·计算机网络
星轨初途1 小时前
C++ 类和对象(下):初始化列表、static 成员与编译器优化深度剖析
android·开发语言·c++·经验分享·笔记
恋猫de小郭1 小时前
Flutter 的 build_runner 已经今非昔比,看看 build_runner 2.13 有什么特别?
android·前端·flutter