【问题标题】:auto width canvas smartgwt自动宽度画布 smartgwt
【发布时间】:2014-06-17 06:03:40
【问题描述】:

**如何在 smartgwt 中设置动态宽度? 我试过这个:

mainWindowBody = new VLayout();
mainWindowBody.setAutoWidth();

它没有工作:S 有人可以帮忙吗?**

【问题讨论】:

  • 你不知道什么是GWT或smartGWT?
  • @MohdSabri 抱歉,我没用过。我在查看第一篇文章时看到了这个类似 Java 的代码。
  • emmm,你说得对:)
  • @orique 你应该看看 GWT。你会对它的功能印象深刻。

标签: gwt smartgwt


【解决方案1】:

我认识的派对迟到了将近一年,但如果这对其他人有所帮助,那是值得的。 SmartGWT 在自动宽度方面有一点奇怪——你必须将它与 setOverflow(Overflow.VISIBLE) 结合起来才能工作。将 setAutoWidth 和溢出放在同一个 Layout/Canvas 上,它会根据自己的宽度调整大小。

【讨论】:

  • 习惯上留下一些示例代码以使您的答案更容易理解。 :) 欢迎来到 SO!
【解决方案2】:

Canvas.setWidth(String) 与适当的字符串一起使用或Canvas.setWidth100()

mainWindowBody.setWidth("*");

mainWindowBody.setWidth100();

mainWindowBody.setWidth("100%");

在这种情况下,所有的效果都相同。
这将导致mainWindowBody 根据可用空间的大小展开和收缩。

Canvas 中有三个 setWidth()(和 setHeight)方法:
setWidth(int) - 以像素为单位设置特定宽度 - setWidth(200)
setWidth(String) - 与百分比一起使用 - setWidth("50%")setWidth100() - 一种将宽度设置为 100% 的便捷方法

检查What does setWidth("*") do in CSS / SmartGWT? 以查看setWidth("*")setWidth100() 之间的区别。

【讨论】:

  • 这将采用父母的宽度和高度!我希望它自动决定小部件的宽度和高度。谢谢:)
  • @Moh'dSabri 基于什么?
【解决方案3】:

HTML5 画布喜欢以像素为单位的大小,如果您设置了新大小,则会清除其内容。但它有一个context.scale() 函数,可以在调整大小时保留画布的内容。

如果您在用户调整浏览器窗口大小时尝试调整画布大小,您可以添加一个窗口调整大小处理程序:Window.addResizeHandler()。我只知道如何使用 GWT,而不是 SmartGWT。当触发窗口调整大小事件时,使用 event.getHeight() 和 event.getWidth() 以及一些数学运算来计算画布的新像素大小。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多