4

在我的 ui.xml 中,我的风格如下

<ui:style src="../teststyle.css" />

如果我想以编程方式使用java 文件中的样式而不是 ui.xml,在我的小部件中如何调用 .setStyleName(..) 因为 css 被混淆了

4

2 回答 2

15

您需要执行以下步骤才能在视图类中使用样式:

  • 定义一个CssResource在你的视图类中扩展的接口
interface Style extends CssResource {

    String myStyle();

}
  • 添加您刚刚在视图类中定义的那种类型的 ui 字段
@UiField
Style style;
  • 在您的 ui.xml 中将type属性添加到您的<ui:style>元素(类型必须与步骤 1 的接口匹配):
<ui:style type="com.example.MyView.Style">
  • 对于您要在视图类中访问的每个 css 类,您需要向Style接口添加一个方法(如使用 完成myStyle()

  • 您现在可以通过style字段 ( style.myStyle())访问样式

希望有帮助。

于 2010-10-20T14:34:24.860 回答
2

如果我理解你的问题是正确的,你必须定义一个从 CssResource 扩展的类(你可能已经这样做了)。在您看来,您可以拥有此类的静态实例(我们称之为cssInstance)。在构造函数中,您必须调用cssInstance.ensureInjected(). 如果您现在想要添加或设置样式,您可以像示例一样轻松完成:anyWidget.addStyleName(cssInstance.styleBorder());

于 2010-10-20T14:20:11.293 回答