我正在尝试实现一个简单的对话框.我想要确定并取消对话框底部对齐的按钮.我将按钮嵌入HorizontalPanel并尝试将水平对齐设置为RIGHT.但是,这不起作用.如何使按钮对齐?谢谢.这是片段:
private Widget createButtonsPanel() {
HorizontalPanel hp = new HorizontalPanel();
hp.setCellHorizontalAlignment(saveButton, HasHorizontalAlignment.ALIGN_RIGHT);
hp.setCellHorizontalAlignment(cancelButton, HasHorizontalAlignment.ALIGN_RIGHT);
hp.add(saveButton);
hp.add(cancelButton);
return hp;
}
Run Code Online (Sandbox Code Playgroud)
zmi*_*ila 29
关键是setHorizontalAlignment 在添加按钮之前调用,如下所示:
final HorizontalPanel hp = new HorizontalPanel();
final Button saveButton = new Button("save");
final Button cancelButton = new Button("cancel");
// just to see the bounds of the HorizontalPanel
hp.setWidth("600px");
hp.setBorderWidth(2);
// It only applies to widgets added after this property is set.
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
hp.add(saveButton);
hp.add(cancelButton);
RootPanel.get().add(hp);
Run Code Online (Sandbox Code Playgroud)
如果你想让你的按钮紧密在一起 - 将它们放入一个新的容器中,然后将容器放入右边的水平面板中
Pet*_*ner 14
再向该线程添加一个提示:如果您使用UiBinder来布局面板,那么在向面板添加任何小部件之前,您将无法确定如何设置对齐属性.另外,直接在面板上使用bean属性,比如...
<g:HorizontalPanel horizontalAlignment="ALIGN_RIGHT">
....
</g:HorizontalPanel>
Run Code Online (Sandbox Code Playgroud)
......不起作用.诀窍?包装您需要在<g:cell>元素中设置对齐的DockPanel,HorizontalPanel或VerticalPanel的所有子项:
<g:HorizontalPanel>
<g:cell width="800px" horizontalAlignment="ALIGN_RIGHT">
<g:Button ui:field="closeButton" text="Close" />
</g:cell>
</g:HorizontalPanel>
Run Code Online (Sandbox Code Playgroud)
请注意,在大多数情况下,如果在水平面板上使用此选项,则可能需要设置"宽度"和对齐,反之亦然.有关详细信息,请参阅CellPanel的Javadoc.
您可能要使用Firebug来检查HorizontalPanel本身的范围。您可能需要一个
hp.setWidth("100%");
Run Code Online (Sandbox Code Playgroud)
通常,HorizontalPanel会根据内容调整大小,因此,如果在其中放置几个按钮,由于表格本身不会展开,因此它将保持对齐状态。