【问题标题】:use uibinder css in java rather than xml在 java 中使用 uibinder css 而不是 xml
【发布时间】:2010-10-20 14:13:35
【问题描述】:

在我的 ui.xml 中,我的样式如下所示

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

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

【问题讨论】:

    标签: java gwt uibinder


    【解决方案1】:

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

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

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

    希望对您有所帮助。

    【讨论】:

    • 其实字段必须命名为'style',而不是'css';或者你应该在
    • 感谢您指出这一点。我没有复制我的那部分代码。
    • 很好:) ...比使用@external 好多了
    【解决方案2】:

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

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