**如何在 smartgwt 中设置动态宽度?我试过这个:
mainWindowBody = new VLayout();
mainWindowBody.setAutoWidth();
它没有用:S任何人都可以帮忙吗?**
我知道的派对迟到了将近一年,但如果这对其他人有帮助,那是值得的。SmartGWT 在自动宽度方面有一点奇怪——你必须将它与 setOverflow(Overflow.VISIBLE) 结合起来才能工作。将 setAutoWidth 和溢出放在同一个 Layout/Canvas 上,它将调整到自己的宽度。
将Canvas.setWidth(String)与适当的 String 或Canvas.setWidth100()一起使用。
mainWindowBody.setWidth("*");
或者
mainWindowBody.setWidth100();
或者
mainWindowBody.setWidth("100%");
在这种情况下,所有这些都会产生相同的效果。
这将导致mainWindowBody
根据可用空间的大小进行扩展和缩回。
Canvas中有三种setWidth()
(和 setHeight)方法:
setWidth(int)
- 以像素为单位设置特定宽度 - setWidth(200)
setWidth(String)
- 与百分比一起使用 - setWidth("50%")
setWidth100()
- 将宽度设置为 100% 的便捷方法
检查setWidth("*") 在 CSS / SmartGWT 中有什么作用?setWidth("*")
查看和之间的区别setWidth100()
。
HTML5 画布喜欢以像素为单位的大小,如果您设置了新大小,则会清除其内容。但它有一个context.scale()
功能,可以在调整大小时保留画布的内容。
如果您在用户调整浏览器窗口大小时尝试调整画布大小,您可以添加一个窗口调整大小处理程序Window.addResizeHandler()
:我只知道如何使用 GWT,而不是 SmartGWT。当触发窗口调整大小事件时,使用 event.getHeight() 和 event.getWidth() 以及一些数学来计算画布的新像素大小。