【发布时间】:2010-10-20 14:13:35
【问题描述】:
在我的 ui.xml 中,我的样式如下所示
<ui:style src="../teststyle.css" />
如果我想以编程方式在 java 文件中使用样式 而不是 ui.xml,在我的小部件中如何调用 .setStyleName(..) 作为 css 是混淆了
【问题讨论】:
在我的 ui.xml 中,我的样式如下所示
<ui:style src="../teststyle.css" />
如果我想以编程方式在 java 文件中使用样式 而不是 ui.xml,在我的小部件中如何调用 .setStyleName(..) 作为 css 是混淆了
【问题讨论】:
您需要执行以下步骤才能在视图类中使用样式:
CssResource 的接口interface Style extends CssResource {
String myStyle();
}
@UiField
Style style;
type 属性添加到您的 <ui:style> 元素(类型必须与步骤 1 的接口匹配):<ui:style type="com.example.MyView.Style">
对于您要在视图类中访问的每个 css 类,您需要向 Style 接口添加一个方法(与 myStyle() 一样)
您现在可以通过 style 字段 (style.myStyle()) 访问样式
希望对您有所帮助。
【讨论】:
如果我理解你的问题是正确的,你必须定义一个从 CssResource 扩展的类(你可能已经这样做了)。在您看来,您可以拥有此类的静态实例(我们称之为cssInstance)。在构造函数中你必须调用cssInstance.ensureInjected()。如果您现在想添加或设置样式,您可以轻松地进行,例如:anyWidget.addStyleName(cssInstance.styleBorder());