在java中使用uibinder css而不是xml

发布于 2024-09-28 11:02:54 字数 186 浏览 3 评论 0原文

我的样式如下

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

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

in my ui.xml, i have style like below

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

if i want to programmatically use the style inside java file rather than ui.xml, in my widget how to call .setStyleName(..) as the css is obfuscated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只是在用心讲痛 2024-10-05 11:02:54

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

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

    String myStyle();

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

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

希望有帮助。

You need to do the following steps to use the styles in your view class:

  • Define a interface that extends CssResource in your view class
interface Style extends CssResource {

    String myStyle();

}
  • Add a ui field of that type you just defined in your view class
@UiField
Style style;
  • In your ui.xml add the type attribute to your <ui:style> element (the type must match the interface of step 1):
<ui:style type="com.example.MyView.Style">
  • For each of the css classes you want to access in your view class you need to add a method to the Style interface (as done with myStyle())

  • You can now access the style via the style field (style.myStyle())

Hope that helps.

烟织青萝梦 2024-10-05 11:02:54

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

if i understand your question correct you have to define a class which extends from CssResource (you probably have done that already). In your view you can have a static instance of this class (let's call it cssInstance). In the constructor you have to call cssInstance.ensureInjected(). If you now want to add or set a style you can do it easly like Example: anyWidget.addStyleName(cssInstance.styleBorder());

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文