- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 UiBinder (UiRenderer) 为 CellWidget 生成一个 Cell。我在 MyCell.java 中生成单元格所做的工作:
public class MyCell implements AbstractCell<MyDto> {
public interface Resources extends ClientBundle {
@Source({Css.DEFAULT_CSS })
Css css();
}
public interface Css extends CssResource {
String DEFAULT_CSS = "test/MyStyle.css";
String test();
}
interface MyUiRenderer extends UiRenderer {
void render(SafeHtmlBuilder sb, String name, SafeStyles styles);
}
private static MyUiRenderer renderer = GWT.create(MyUiRenderer.class);
Resources resources = GWT.create(Resources.class);
@Override
public void render(SafeHtmlBuilder safeHtmlBuilder, MyDto model) {
SafeStyles style = SafeStylesUtils.fromTrustedString(resources.css().test().toString());
renderer.render(safeHtmlBuilder, model.getName(), style);
}
}
我的 MyCell.ui.xml 文件如下所示:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'>
<ui:with field="name" type="java.lang.String" />
<ui:with field='styles' type='com.google.gwt.safecss.shared.SafeStyles'/>
<div style="{styles}"><ui:text from="{name}" /></div>
</ui:UiBinder>
MyStyle.css:
.test {
background-color: red;
font-size: 20px;
display: flex;
...
}
当我运行我的代码时,出现以下错误:
[DEBUG] [mobile] - Rebinding test.client.app.MyCell.MyUiRenderer
[DEBUG] [mobile] - Invoking generator com.google.gwt.uibinder.rebind.UiBinderGenerator
[ERROR] [mobile] - java.lang.String required, but {styles} returns com.google.gwt.safecss.shared.SafeStyles: <div style='{styles}'> (:9)
[ERROR] [mobile] - Deferred binding failed for 'test.client.app.MyCell.MyUiRenderer'; expect subsequent failures
[ERROR] [mobile] - (GWT.java:72) 2014-06-08 17:15:05,214 [FATAL] Uncaught Exception:
然后我尝试这样做:
<ui:with field="styles" type="java.lang.String" />
在我的 UiBinder 中,但它不起作用。
如何在我的 UiRenderer 中使用来自 CssResource 的 css 样式?
最佳答案
<div style="{styles}">
这里有两个问题。首先,为了改变元素的样式,您有两个选择,将样式属性设置为包含特定属性,或者将类属性设置为指向您在 CSS 中某处定义的类。所以,你真的想在这里设置 class
,而不是 style
。
其次,您创建了一个名为“test”的 css 类,但在这里只分配了整个界面和样式。相反,引用 styles.test:
<div class="{styles.test}" />
编辑:您可能遗漏了最后一 block (但由于“这不起作用”非常含糊,我不知道这是否是您的实际问题):我没有看到对 ensureInjected( )
在你的例子中。确保在使用前在 Css
实例上调用它。
关于java - 如何在生成的 Cell 的 UiBinder 中使用 CssResources?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107617/
我知道可以为所有 css 资源(In GWT 2.0 CssResource, how I can turn off obfuscation for all my css classes?)或一个外部
我有这样的界面 public interface PopupPanelWithConfirmStyle extends ClientBundle { public static final Pop
我将 GWT ClientBundle 与 CssResource 结合使用。我有一个包含以下类的 css 文件 test.css: .c1 { } .c2 { } 当我想使用 test.css 中的
目前我有一个在 gwt 中使用 CssResource 的应用程序...... interface MyClientBundle extends ClientBundle{ @Source("imag
我有一个 GWT 1.7 应用程序,我想将它升级到 GWT 2 Milestone 2。该应用程序使用 2 个大的外部 CSS 文件。在 GWT 1.7 中,我有一个公用文件夹,并将 CSS 文件放在
假设我有这样的 css 样式: .foo a, .foo a:visited .foo a:hover { /* some styles here */ } .bar table tr td{
我正在根据本指南使用包含在 ClientBundle 中的 CssResource: http://code.google.com/webtoolkit/doc/latest/DevGuideUiCs
我通过 CssResource 从 UiBinder 和 java View 访问样式名称。问题是由于类名混淆,我找不到添加和删除后缀的方法。 到目前为止,我已经在主名称和从属名称上使用@extern
我正在寻找一种方法来做这样的事情: // style.css @def borderSize '2px'; .style { width: borderSize + 2; height: bo
我想使用 Cssresources 机制来设置 TabLayoutPanel 的标签栏元素的样式。 根据这里的文档是访问栏的样式规则:.gwt-TabLayoutPanel .gwt-TabLayou
我在使用背景 url 的 ClientBundle 中有一些 CSS。因为我从 /index.html 加载了 javascript (/MyModule/MyModule.nocache.js),所
例如我有这个html div结构 和这些r对应的类 .parent{ /*stuff*/} .parent .child1{/*stuff*/} .pa
这是我的问题:例如,我有 2 个具有不同组件外观的 java 类。但是他们对 CssResource 风格的界面使用相同的基本 CSS 文件。这看起来如何: public class FirstApp
我正在使用 GWT 生成器并想用生成器修改一个 css 文件。 css 文件包含如下常量 (test/client/App.css): @def LINE_WIDTH 100px; 我定义了一个接口(
我正在尝试为 webkit 中的滚动条使用样式。 CSS 选择器如下所示: ::-webkit-scrollbar-corner ::-webkit-scrollbar-track-piece:dis
您好,我想使用 GWT CSSResource 设计我的 Webb 应用程序。 但我不知道如何设计一个简单的超链接。 在简单的 css 中我会这样做: a{color: #somecolor} a:h
我正在尝试向 GWT g:label 添加第二种样式。我将 CSS 样式定义为 CssResource。标签很好地选择了 .gwt-Label 样式,但它没有选择添加样式中定义的字体颜色的变化。
在我的元素中,我将您的 CSSResource bundle 应用到整个元素中。 如何应用更复杂的样式,例如 example 中给出的样式? 我无法使用 x.setStyleName(refToCss
我正在使用 GWT 的 ClientBundle 和 CssResource 来引入我的 css 定义。 我想根据屏幕尺寸设置视口(viewport)。你知道如何在 CssResource 中实现这一
我意识到 GWT 使用的 CSS 解析器只能处理 CSS2,但我的目标是 iPhone Safari,所以我希望能够使用一些 CSS3 的东西。对于属性,我一直很好地使用 literal GWT 提供
我是一名优秀的程序员,十分优秀!