Android View中getWidth方法

本文深入探讨了在Android开发中获取View宽度的多种方法,并通过实例演示了为何在onSizeChanged方法中获取宽度更为稳定可靠。同时强调了实践的重要性,提醒开发者不应盲目依赖网络答案,而应亲自验证和理解原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个让我生气的方法,遇到这个方法的时候,最开始为了省事,就去网上搜了下

不少答案说,只有在onDraw中调用这个方法才可以得到这个View正确的大小,之前的方法只能得到0

我想了想不对啊,onMeasure不是测量View大小的么,它应该可以得到正确的值,用Log试了下

结果如图:


onMeasure最后还是可以得到正确值的,因为这个方法会被调用多次,所以在这里调用getWidth方法不稳定


但是网上说不能,不是侮辱我的眼睛么 !!


俗话说纸上得来终觉浅,欲知此事需躬行,以后网上只信一半。


接着说getWidth方法,API源码:


需要注意的是,这个方法返回的是View所占的px(虚拟像素)值


那我们该在哪里去调用这个getWidth方法呢,答案是onSizeChanged方法,它在onMeasure确定width之后之后才去调用


那如果我们一定要在onMeasure中获得View 的width,可以用getMeasureWidth方法


有问题请留言。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值