【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()
相关推荐
kymjs张涛13 小时前
OpenClaw 学习小组:初识
android·linux·人工智能
范特西林16 小时前
实战演练——从零实现一个高性能 Binder 服务
android
范特西林17 小时前
代码的生成:AIDL 编译器与 Parcel 的序列化艺术
android
范特西林17 小时前
深入内核:Binder 驱动的内存管理与事务调度
android
范特西林18 小时前
解剖麻雀:Binder 通信的整体架构全景图
android
范特西林18 小时前
破冰之旅:为什么 Android 选择了 Binder?
android
奔跑中的蜗牛66619 小时前
一次播放器架构升级:Android 直播间 ANR 下降 60%
android
测试工坊21 小时前
Android 视频播放卡顿检测——帧率之外的第二战场
android
Kapaseker1 天前
一杯美式深入理解 data class
android·kotlin
鹏多多1 天前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter