java GWT设置TabLayoutPanel的样式时出现问题
我想使用TabLayoutPanel
实现一个水平导航栏,使用自定义样式来满足我的需要
但是我不知道如何覆盖default
样式。下面是UiBinder
模板:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
.gwt-TabLayoutPanel .gwt-TabLayoutPanelHeader {
background-color: red;
padding: 0;
margin: 0;
}
</ui:style>
<g:TabLayoutPanel barHeight="3.75" barUnit="EM">
<g:tab>
<g:header>Latest</g:header>
<g:Label>Latest Activities</g:Label>
</g:tab>
<g:tab>
<g:header>Patients</g:header>
<g:Label>Patients</g:Label>
</g:tab>
</g:TabLayoutPanel>
</ui:UiBinder>
这不管用。但是如何引用默认样式呢
# 1 楼答案
我认为附加一个单独的css-内联样式用于同一模板中的{style.xyz}。实际上还有第二个解决方案。如果你坚持把它放在用户界面上。xml-使用外部作用域:http://code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#External_and_legacy_scopes
# 2 楼答案
下面是一个有效的例子
http://code.google.com/p/salvadordiaz/source/browse/trunk/gwt-exception-handler/src/fr/salvadordiaz/gwt/client/BlocImage.ui.xml?spec=svn56&r=56
# 3 楼答案
经过一些研究,我使用了下面的方法,它的工作。。。我正在使用GWT2.5
# 4 楼答案
或者您可以简单地将
!important
添加到样式定义中# 5 楼答案
如果您想了解GWT css文件的声明方式:
如果需要,可以更改主题
# 6 楼答案
为了详细说明atamur的答案,他建议的第二个选项实际上是两个选项中最好的一个,特别是如果您的所有其他样式都是使用UiBinder或客户端包设置的。基本上,在初始
<ui:style>
标记下面添加以下行:问题是GWT混淆了您在UiBinder模板中定义的样式规则。因此,当您编写“gwt TabLayoutPanel”时,它会被混淆为“GMDW0RHDH”之类的内容,然后再也不会应用于TabLayoutPanel的元素。添加“@external”将禁用此混淆,并允许按预期应用UiBinder中的样式