我已通过编程方式将按钮的宽度设置为0dp,权重为1,以使其与gridview其余按钮的宽度相同。
问题是我无法成功设置高度等于宽度,因为宽度已设置为0。
所以我想知道按钮何时采用其实际宽度。现在,我使用的是viewTreeObserver,但是单击按钮时只有很好的宽度。
您对此有任何解决方案吗?
答案 0 :(得分:0)
创建自定义视图子类并覆盖onMeasure。在您的onMeasure中,查看一下specspec来找出您可以做多大,并设置合适的宽度和高度。
onMeasure是您的父视图调用的函数,用于确定其子视图的大小。确保在onMeasure内调用setMeasuredDimension,否则您将在某个地方抛出异常。