How can I vertically center an element with GWT?

12,072

Centering an item can be done with a cell element like this:

<g:HorizontalPanel width="100%" height="100%">
 <g:cell horizontalAlignment="ALIGN_CENTER" verticalAlignment="ALIGN_MIDDLE">
  <g:Label>Hello Center</g:Label>
 </g:cell>
</g:HorizontalPanel>
Share:
12,072
Camille
Author by

Camille

Updated on July 02, 2022

Comments

  • Camille
    Camille almost 2 years

    Perhaps I haven't been searching the right way but I cannot figure out for the life of me how to center an element using GWT Layout Panels.

    I'm using UiBinder and I've tried all panels that implement HasVerticalAlignment (DockPanel, HorizontalPanel, VerticalPanel). None of them seem to have any impact from setting vertical alignment (or even horizontal). I've made sure they're taking 100% width and height, inspected the resulting DOM layout from my browser and nothing seems to be changed from those properties.

    Pertinent UiBinder extract (with extra docklayout elements omitted):

    <g:DockLayoutPanel>
    <g:center>
        <g:HorizontalPanel width="100%" height="100%" >
            <g:FlexTable ui:field="homeData" />
        </g:HorizontalPanel>
    </g:center>
    </g:DockLayoutPanel>
    

    The quick and dirty fix I've figured out is to create my own "CenterPanel" widget which basically is a wrapper around a HTMLPanel with a HTML table with a valign="middle" cell. However, this basically feels like a throwback to the classical css-layout middle centering problems. Surely GWT has something to do this that I've completely overlooked?