为什么getOffsetWidth()和getElement().getClientWidth()为GWT中的小部件返回0?
我正在使用RaphaelGWT使用底层RaphaelJS库绘制形状。两个项目都很棒。然而,拉斐尔的文本对象在默认情况下显示为居中,这一问题让我陷入了一段时间 我尝试创建一个文本对象,默认情况下将其居中,然后测量其宽度以调整第二个文本对象的位置,然后删除第一个文本对象。但我无法获得原始文本对象的宽度 仅供参考,在RaphaelGWT中,形状对象用于扩展小部件。所以我尝试了为什么getOffsetWidth()和getElement().getClientWidth()为GWT中的小部件返回0?,gwt,raphael,Gwt,Raphael,我正在使用RaphaelGWT使用底层RaphaelJS库绘制形状。两个项目都很棒。然而,拉斐尔的文本对象在默认情况下显示为居中,这一问题让我陷入了一段时间 我尝试创建一个文本对象,默认情况下将其居中,然后测量其宽度以调整第二个文本对象的位置,然后删除第一个文本对象。但我无法获得原始文本对象的宽度 仅供参考,在RaphaelGWT中,形状对象用于扩展小部件。所以我尝试了getAbsoluteLeft(),getElement().getAbsoluteRight(),getOffsetWidth
getAbsoluteLeft()
,getElement().getAbsoluteRight()
,getOffsetWidth()
,getElement().getClientWidth()
。getAbsoluteLeft()是唯一一个返回我期望的结果的函数getAbsoluteRight()
返回与getAbsoluteLeft()
相同的值,并且getOffsetWidth()
和getElement().getClientWidth()
返回0
为什么?
仅供参考,我根据用于创建文本形状的原始x值(x随后成为中心)和实际返回预期值的
getAbsoluteLeft()
,计算了宽度。对于getOffsetWidth()返回正确的值。您确定在将小部件添加到DOM后调用这些方法吗?是的,我想在原始帖子中提到,假设有人问我这个问题;如果没有将getAbsoluteLeft()添加到DOM中,它不会返回有效值,是吗?