A FlowPanel
jest renderowany jako html '< div>', więc wszystko dodane do niego zostanie umieszczone w zależności od jego domyślnego wyświetlania.
Na przykład dzieci Widgety renderowane jako „< div>” jak Label
zostanie umieszczony pionowo, ponieważ ich zachowanie domyślne jest jako blok, ale jeśli dodać TextBox
zostanie wygenerowana jako „< input>”, którego domyślna wyświetlanie to blok inline.
Więc droga do dysponowania dzieci w A FlowPanel
jest ustawienie właściwości display
odpowiednio dla każdego z dzieci, grając z właściwością float
lub jakiegokolwiek innego css uszczypnąć jak flexbox. Zazwyczaj projektanci gwt wykonują te style ustawień w szablonach ui-binder. Ale jeśli chcesz zrobić za pomocą kodu można to zrobić:
// Example of a flow panel with all elements disposed in vertical
FlowPanel verticalFlowPanel = new FlowPanel();
TextBox textBox = new TextBox();
Label label = new Label("Foo");
textBox.getElement().getStyle().setDisplay(Display.BLOCK);
verticalFlowPanel.add(textBox);
verticalFlowPanel.add(label);
RootPanel.get().add(verticalFlowPanel);
// Example of a flow panel with all elements disposed in horizontal
FlowPanel horizontalFlowPanel = new FlowPanel();
TextBox textBox2 = new TextBox();
Label label2 = new Label("Foo");
label2.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
horizontalFlowPanel.add(textBox2);
horizontalFlowPanel.add(label2);
RootPanel.get().add(horizontalFlowPanel);
jeśli wszystkie dzieci r z tego samego typu widżetu, jak etykiety, będzie płynąć w poziomie. Jeśli 1 widget to etykieta, a inne to Textbox, to będzie płynąć pionowo. Jakiekolwiek rozwiązanie znalazłem – Tum
@Minh Hai, To nie prawda, zależy to od natury widgetu. Jeśli wszystkie widgety są etykietami, zawsze przepływają w pionie, chyba że ustawisz styl na inny. –
Dziękuję za odpowiedź na pytanie, ale czy to prawda, że działa dużo lepiej z FlowPanel niż VerticalPanel lub HorizontalPanel? od kiedy VP i HP używają tagu
Korzystanie
display:block;
dla dzieci to będzie OK. Znalazłem, że moja aplikacja działa znacznie szybciej po konwersji VerticalPanel na FlowPanel.Źródło
2013-10-09 07:04:55 Tum
Powiązane problemy