什么时候获得实际宽度?

时间:2019-03-17 20:41:45

标签: android

我已通过编程方式将按钮的宽度设置为0dp,权重为1,以使其与gridview其余按钮的宽度相同。

问题是我无法成功设置高度等于宽度,因为宽度已设置为0。

所以我想知道按钮何时采用其实际宽度。现在,我使用的是viewTreeObserver,但是单击按钮时只有很好的宽度。

您对此有任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

创建自定义视图子类并覆盖onMeasure。在您的onMeasure中,查看一下specspec来找出您可以做多大,并设置合适的宽度和高度。

onMeasure是您的父视图调用的函数,用于确定其子视图的大小。确保在onMeasure内调用setMeasuredDimension,否则您将在某个地方抛出异常。