java - GWT - 设置 TabLayoutPanel 样式的问题

标签 java gwt uibinder gwt2 gwt-2.2

我想使用 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>

这行不通。但是我怎样才能引用默认样式呢?

最佳答案

为了详细说明 atamur 的回答,他建议的第二个选项确实是两者中更好的一个,尤其是如果您的所有其他样式都是使用 UiBinder 或客户端包设置的。基本上,您在初始 <ui:style> 下面添加以下行标签:

@external .gwt-TabLayoutPanel .gwt-TabLayoutPanelHeader

问题在于 GWT 混淆了您在 UiBinder 模板中定义的样式规则。因此,当您编写“gwt-TabLayoutPanel”时,它会被混淆为“GMDW0RHDH”之类的内容,然后永远不会应用于您的 TabLayoutPanel 的元素。添加“@external”可禁用此混淆,并允许按您的预期应用 UiBinder 中的样式。

关于java - GWT - 设置 TabLayoutPanel 样式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394752/

相关文章:

java - Java-多线程

java - 将字符串中的字母提升为java中的下一个字母

java - 即使添加 @service 装饰器,bean 实例仍然为 null 值

gwt - 注入(inject) EventBus GWT

json - 在 GWT JSNI 中迭代 JSONObject

java - 在 HTML/JS 应用程序中嵌入玩过的游戏

java - Java中锁定一个类的所有实例

gwt - 获取 UiBinder 小部件以内联显示而不是 block 显示

java - @UiHandler 的文档

gwt - gwt 中 uibinder 的动态值