我有一个GWT TextButton
。应用于全局css文件的以下css样式不执行任何操作:
.gwt-TextButton {
color: red !important;
}
为什么呢?有哪些正确的样式可用于更改所有TextButton小部件的样式?
答案 0 :(得分:2)
TextButton
是一个由单元格支持的小部件,基于appearance模式。它使用TextButtonCell
呈现内容并使用CellWidget<T>
包装它。
您要查找的全局css是gwt-ButtonCellBase
,但由于在ClientBundle
中使用了它,因此需要进行扩展ButtonCellBase.DefaultAppearance.Resources
,提供您自己的Style
。就像任何其他基于单元格的小部件一样。然后你需要使用正确的构造函数(TextButton(Appearance appearance, String text)
)。示例代码如下。
定义资源外观扩展(为清晰起见,完全引用):
public interface MyResources extends ButtonCellBase.DefaultAppearance.Resources {
@Override
@Source(value = {ButtonCellBase.DefaultAppearance.Style.DEFAULT_CSS, "custom.css"})
ButtonCellBase.DefaultAppearance.Style buttonCellBaseStyle();
}
在custom.css
内,覆盖您想要的ButtonCellBase.css
,然后注入所有内容:
MyResources customResources = GWT.create(MyResources.class);
TextButtonCell.Appearance customAppearance = new TextButtonCell.DefaultAppearance(customResources);
TextButton button = new TextButton(customAppearance, "Text");
你可以很好地完成上述所有操作,并始终以相同的外观实例化任何新的TextButton
。