как добавить поля в FlowPanel?

#gwt

#gwt

Вопрос:

Я использую com.google.gwt.user.client.ui.Виджеты FlowPanel очень близки друг к другу. Однако я не могу понять, как установить поля?

Кстати, возможно, есть макеты получше? Мне просто нужен контейнер для нескольких якорей, расположенных один за другим.

Ответ №1:

Вы можете сделать это программно :

flowPanel.getElement().getStyle().setProperty("margin", "10px");

Или с помощью класса CSS, который объявляет margin ( YourCssClassWithMargin{ margin: 10px; } ) :

-> если вы используете UiBinder, добавьте стиль CSS таким образом :

 <g:FlowPanel styleName='YourCssClassWithMargin'>
  

-> если вы не используете UiBinder таким образом :

flowPanel.addStyleName("YourCssClassWithMargin");

Комментарии:

1. я пробовал это flowPanel.getElement().getStyle().setProperty("margin", "10px"); . Это делает разные вещи. Этот код добавляет пространство в границы flowpanel. Но мне нужно добавить пространство между виджетами внутри FlowPanel

2. хорошо, когда я добавляю поля anchor вместо flowPanel , у меня есть почти то, что я хочу. Но этот код добавляет как вертикальные, так и горизонтальные поля. Мне нужно только горизонтальное поле, мне не нужно вертикальное поле — возможно ли это?

3. Да, используйте marginLeft и / или marginRight вместо просто margin.

Ответ №2:

Добавлены новые методы со всеми элементами свойств в качестве отдельных методов. Это очень удобно, например

 `flowPanel.getElement().getStyle().setMargin(10, Unit.PX);`
`flowPanel.getElement().getStyle().setMarginLeft(10, Unit.PX);`
`flowPanel.getElement().getStyle().setMarginRight(10, Unit.PX);`
`flowPanel.getElement().getStyle().setMarginTop(10, Unit.PX);`
`flowPanel.getElement().getStyle().setMarginBottom(10, Unit.PX);`
  

Ответ №3:

Самым простым способом было бы использовать селекторы, которые есть в CSS.

Если вы хотите применить a margin ко всему Anchors Divs (A FlowPanel является нормальным Div ), вы используете этот CSS:

 div a {
   margin:10px;
}
  

Если вы хотите применить margin только к Anchor своему FlowPanel , вы бы сделали что-то вроде этого:

 .FlowPanelStyle {
    margin:10px;
}
  

Вам нужно будет применить FlowPanelStyle к вашему FlowPanel , позвонив

yourFlowPanel.addStyleName(«FlowPanelStyle»);