我有一个GWT TextButton
。应用于全局css文件的以下css样式不起作用:
.gwt-TextButton {
color: red !important;
}
为什么?更改所有TextButton小部件的样式应使用哪些正确样式?
最佳答案
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
。关于java - 如何设置TextButton的样式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16345602/