我正在将一些小部件开发成一个库,供我工作的公司内部使用。
我不知道为小部件设置样式的推荐方法是什么。
至少有这些方法:
使用 Widget.setPrimaryStyleName 并让用户提供外部 CSS。我们使用 Maven 原型(prototype)来构建应用程序,因此我们可以提供默认样式。反正我不是很喜欢。
使用 GWT 2.0 CssResourceBundle。所以我们可以将 CSS 编译到模块中并进行优化(并且它也可以依赖于浏览器)。
提供具有样式的模块。类似于默认的 GWT 主题。但我不知道这到底是如何工作的。
我想:
- 尽可能使组件具有内聚性(不要依赖外部包含的 CSS)
- 为修改样式敞开大门(如果我想更改某些小部件在具体应用程序中的外观)。
您在这方面的经验如何?
注意:如果您正在寻找明确的答案,请查看所有答案和评论。有不同的想法和所有好的想法。然后选择最适合你的:)
最佳答案
我认为最好的方法是在模块中提供样式。通过这种方式,您将能够轻松地重新设置样式或为您的控件添加“主题”。
我正在做一个类似的元素,该元素托管在 github ( http://github.com/markovuksanovic/gwt-styles ) 上,所以您可能想检查一下。您可以下载 jar 文件,将其包含在您的元素中,并在您的模块 xml 中指定您想要使用该样式.. 之类的
<inherits name='gwt.theme.flick.Flick'/>
我建议您为您的样式使用新模块,以便您可以轻松地在样式之间切换...(只需更改 inherits 标签)。因此,例如,如果您的一个小部件使用 css 类“my-widget”,您将拥有一个“样式”模块(或多个模块)来定义该 css 类(在 css 文件中)——这样您就可以拥有实现该 css 类并在它们之间切换的多个模块就像更改 inherits 标记中的模块名称一样简单。这样你就可以很好地解耦代码——样式将独立于小部件的技术实现。如果您还有其他问题,请随时提问。
附言我忘了在上面提到 - 请密切注意样式模块的构建方式 (build.xml),这有点棘手。您可以在以下链接中找到有关创建模块的更多信息 http://developerlife.com/tutorials/?p=229
关于java - 在库中设置 GWT 小部件样式的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2728739/