如何在DockLayoutPanel中的DeckLayoutPanel中居置小部件

时间:2018-05-17 16:46:24

标签: gwt 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'>
  <g:FlowPanel>
    <g:DockLayoutPanel ui:field="mainApplicationWidget"
                       styleName="ui-main-panel">
      <g:north size="200">
        <g:HTMLPanel>
          <div class="banner">
            <div class="banner-text-left">
              <h3>Descriptive Text</h3>
              <h2>Title</h2>
            </div>
          </div>
        </g:HTMLPanel>
      </g:north>

      <g:center>
        <g:DeckLayoutPanel ui:field="deckLayoutPanel"
                           styleName="ui-main-deck">
        </g:DeckLayoutPanel>
      </g:center>
    </g:DockLayoutPanel>
  </g:FlowPanel>
</ui:UiBinder>

当我在DeckLayoutPanel中放置HTMLPanel时,我可以使用HTML中心标记来集中我的内容。当我添加任何其他小部件时,它最终向左齐平。我试过像这样包装DockLayoutPanel和DeckLayoutPanel:

<g:VerticalPanel spacing="0" width="100%" height="100%" ui:field="mainPanel">
    <g:Cell horizontalAlignment="ALIGN_CENTER" verticalAlignment="ALIGN_MIDDLE">
    <!-- content goes here -->
    </g:Cell>
</g:VerticalPanel>

基于对类似问题的回答,但这不起作用。

例如,我的一个小部件是一个包含Grid的FlowPanel。将它添加到DeckLayoutPanel后,如何在DockLayoutPanel的中心单元格中水平居中?

1 个答案:

答案 0 :(得分:0)

解决方案是将封闭的窗口小部件更改为具有100%宽度和高度的VerticalPanel,并将Grid包装在如上所述设置了horizo​​ntalAlignment的单元格中。