为什么getOffsetWidth()和getElement()。getClientWidth()为GWT中的Widget返回0?

时间:2010-09-29 15:31:44

标签: gwt raphael

我正在使用RaphaelGWT绘制基础RaphaelJS库的形状。这两个项目都很棒。然而,我在拉斐尔的Text对象被默认显示为居中的问题上被困了一段时间。

我尝试创建一个Text对象并默认居中,然后测量其宽度以调整第二个文本对象的位置,然后删除第一个。但是我无法获得原始Text对象的宽度。

仅供参考,在RaphaelGWT中,使用的Shape对象扩展了Widget。所以我尝试了getAbsoluteLeft()getElement().getAbsoluteRight()getOffsetWidth()getElement().getClientWidth()。 getAbsoluteLeft()是唯一一个返回我期望的东西。 getAbsoluteRight()返回与getAbsoluteLeft()相同的值,getOffsetWidth()getElement().getClientWidth()都返回0。

为什么?

仅供参考,我计算了用于创建文本形状的原始x值(x然后成为中心)和getAbsoluteLeft()的宽度,它实际上返回了预期值。

1 个答案:

答案 0 :(得分:3)

元素必须是可见的,getOffsetWidth()才能返回正确的值。