Как выровнять по правому краю кнопки на HorizontalPanel (GWT)

Я пытаюсь реализовать простое диалоговое окно. Я хотел бы иметь OK и кнопки отмены, выровненные по правому краю у основания диалогового окна. Я встраиваю кнопки в HorizontalPanel и пытаюсь установить выравнивание по горизонтали для ИСПРАВЛЕНИЯ. Однако это не работает. Как заставить кнопки выровнять по правому краю?Спасибо. Вот отрывок:

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;
}
23
задан Keox 4 January 2010 в 16:53
поделиться

5 ответов

Смысл в том, чтобы вызвать setHorizontalAlignment before adding your buttons as показано ниже:

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);

Если вы хотите, чтобы ваши кнопки были плотно соединены - поместите их обе в какой-нибудь новый контейнер, и они поместят контейнер внутрь правой горизонтальной панели

.
29
ответ дан 29 November 2019 в 01:25
поделиться

Возможно, вы захотите использовать Firebug для проверки расширений самой HorizontalPanel. Вам может понадобиться

hp.setWidth("100%");

HorizontalPanel, как правило, размещается в соответствии с содержимым, поэтому если вы поместите в него пару кнопок, то он останется выровненным, так как сама таблица не расширяется.

.
5
ответ дан 29 November 2019 в 01:25
поделиться

Вы также можете использовать setCellHorizontalAlignment на панели, которая содержит HorizontalPanel. Это то, что я делаю.

// doesn't necessarily have to be a vertical panel
VerticalPanel container = new VerticalPanel();
HorizontalPanel buttons = new HorizontalPanel();
// add the buttons
container.add(buttons);
container.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_RIGHT);
2
ответ дан 29 November 2019 в 01:25
поделиться

Попробуйте сначала добавить кнопки, а затем вызвать hp.setHorizontalAlignment("ваше соединение здесь").

Удачи!

.
-1
ответ дан 29 November 2019 в 01:25
поделиться

Я нашел пример для выравнивания кнопок: http://gwt.google.com/samples/Showcase/Showcase.html#CwDialogBox

0
ответ дан 29 November 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: