在 GWT UiBinder 中使用非 CSS 常量

Using non-CSS constants in GWT UiBinder

我正在尝试在 GWT 的 UiBinder XML 中使用常量或定义。我找到的所有问题和答案都与 CSS 常量有关,在元素中使用 @def 注释,但这不是我需要的。举个例子:

1
<g:Button width="60" height="24">Hello</g:Button>

如果我的页面上有 50 个按钮,所有按钮都具有相同的尺寸,我不想按照上面的说明设置每个按钮的尺寸。如果我想更改宽度,我必须对页面上的所有按钮执行此操作。所以,我正在寻找的是这样的:

1
<g:Button width="{myWidth}" height="{myHeight}">Hello</g:Button>

常量 "myWidth" 和 "myHeight" 在 UiBinder XML 文件的开头某处指定。我试过这样做,但我无法让它工作。

有什么想法吗?


A.这就是你的做法:

1
2
3
<ui:with field="styleConstants" type="...constants.StyleConstants" />

<g:Button width="{styleConstants.myWidth}" height="{styleConstants.myHeight}">Hello</g:Button>

显然,StyleConstants 应该有 myWidth() 和 myHeight() 方法。

B.将相同大小设置为 50 个按钮是错误的。这就是 CSS 类的用途。定义一个 CSS 类并将其分配给每个按钮:

1
<g:Button styleName="button">Hello</g:Button>

您可以为此目的使用外部 CSS 文件或 CSS 资源。