2

我有一个 GWT TextButton。以下应用于全局 css 文件的 css 样式不执行任何操作:

.gwt-TextButton {
   color: red !important;
}

为什么?更改所有 TextButton 小部件样式的正确样式是什么?

4

1 回答 1

2

TextButton是一个单元格支持的小部件,基于外观模式。它使用 aTextButtonCell来呈现内容并使用CellWidget<T>.

您正在寻找的全局 css 是,gwt-ButtonCellBase但它被混淆了,因为在 a 中使用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具有相同外观的任何新的。

于 2013-05-02T19:22:56.887 回答