我正在尝试通过ClientBundle将一些CSS应用于我的DialogBox子类。在检查DOM时,我可以看到添加了混淆的类名(class =“gwt-DialogBox GF2AVPFBPD”),但它不承担/应用任何属性/更改...
class RegistrationDialog
extends DialogBox
{
interface MyClientBundle
extends ClientBundle
{
@Source("regDlg.css")
MyCssResource css();
}
interface MyCssResource
extends CssResource
{
String registrationDialog();
}
MyClientBundle myClientBundle = GWT.create(MyClientBundle.class);
RegistrationDialog()
{
add(uiBinder.createAndBindUi(this));
addStyleName(myClientBundle.css().registrationDialog());
}
...
regDlg.css:
.registrationDialog
{
background-image: url("logo.png") !important;
background-color: red !important;
color: red !important;
font-size: xx-large !important;
}
我错过了什么?
答案 0 :(得分:3)
您忘记调用CssResource.ensureInjected()。从文件;
在运行时,调用CssResource.ensureInjected()以注入样式表的内容。
- 这种方法可以安全地多次调用,因为后续调用将是无操作。
- 推荐的模式是在各种小部件类型的静态初始化程序中调用ensureInjected()
查看此question上的答案,了解更多代码信息。