Как обернуть этикетки и выровнять их по левому краю - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть этот код

HorizontalPanel hp = new HorizontalPanel();
hp.setWith("100%");
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
hp.add(new Label("label 1"));
hp.add(new Anchor("anchor 1"));
hp.add(new Label("label 2"));
hp.add(new Anchor("Anchor 2"));
RootPanel.get().add(hp);

На самом деле он отображает

label1 ........................................... anchor1 ...................................... label2 .................................. anchor2

Я на самом деле хотел что-то вроде

label1 anchor1 label2 anchor2

Есть ли компоновка для того или другого решения?ТНХ

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Вы можете оставить свой HorizontalPanel, но попробуйте это:

HorizontalPanel hp = new HorizontalPanel();
hp.setHorizontalAlignment(HasAlignment.ALIGN_LEFT);
hp.setSpacing(2); // 2 = number of pixels between each item
hp.add(new Label("label 1"));
hp.add(new Anchor("anchor 1"));
hp.add(new Label("label 2"));
hp.add(new Anchor("Anchor 2"));
RootPanel.get().add(hp);

Все, что вам действительно нужно, это свойство setSpacing, чтобы они не были буквально привязаны к следующей ячейке в вашем hp, иудалить hp.setWidth("100%").Если бы вы делали это в UiBinder, вы могли бы сохранять ширину 100% и устанавливать ширину каждого <g:cell> независимо, что обеспечивает большую гибкость.

Кроме того, я предлагаю вам использовать HasAlignment вместо HasHorizontalAlignment и/ или HasVerticalAlignment, если по какой-либо другой причине, кроме HasAlignment, она переносима на все типы панелей.

0 голосов
/ 20 сентября 2011

Попробуйте FlowPanel. Он просто добавляет виджеты слева направо, без пробелов и переносов в конце строки.

Может быть, я что-то упустил. Это что-то еще в макете, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...