【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()
相关推荐
_阿南_40 分钟前
flutter 展示的字体突然奔放了
android·flutter·ios
文人sec3 小时前
MySQL事务与索引做了什么?
android·笔记·mysql
刘洋浪子4 小时前
AndroidStudio保存日志菜单
android
朱涛的自习室4 小时前
从 Prompt 到 Graph:AI 工程的进化史
android·前端·人工智能
157092511346 小时前
ViewBinding与DataBinding区别与选型
android
小乖写代码8 小时前
49款开源Android小游戏
android·游戏
三少爷的鞋9 小时前
小团队的最优解:单 Module + 包内 Clean 架构
android
爱和冰阔落9 小时前
【Linux】两个毫无关系的进程怎么通信?命名管道 FIFO 从原理到 Server/Client 实战
android·linux·数据库·c++·vim
Android-Flutter9 小时前
kotlin 协程 - 核心概念
android·kotlin
年小个大18 小时前
受 go-zero 启发,我给 Flutter 写了一套 CLI 脚手架
android·flutter·架构