【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()
相关推荐
峥嵘life31 分钟前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
Android小码家2 小时前
OWASP 移动应用安全之授权(MASTG-DEMO-0090)
android·安全·frida
Summer-Bright2 小时前
消费者 AI 变现竞争:从“一家独大“到“iOS vs Android“,谁在为 AI 买单?
android·人工智能·ios·ai·自然语言处理·agi
Xzaveir2 小时前
企业号码资产平台:逐号状态、事件日志与批次聚合
android·人工智能
恋猫de小郭4 小时前
Flutter 3D 渲染的全新选择和应用场景
android·前端·flutter
—Miss. Z—4 小时前
计算机二级MySQL——简单应用题(事件&视图)
android·mysql·adb
An_s4 小时前
Android通信工具(kotlin)
android
邪修king5 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
三少爷的鞋5 小时前
LiveData 的缺陷:为什么我现在越来越少使用 LiveData?
android
雨白16 小时前
NDK 初探:基于 C++ 实现参数哈希与签名校验
android