GWT文檔recommends使用FlowPanel(float:設置在其子級上的左側)作爲HorizontalPanel到佈局組件的替代品。但如何做到這一點?GWT - 如何在FlowPanel中水平佈局組件?
10
A
回答
16
說,在文檔這樣的權利:
,並使用浮動:左; CSS屬性的子項。
如何設置GWT部件的樣式:
widget.getElement().getStyle().setProperty("float", "left");
4
爲了避免使用HorizontalPanel
我用下面的代碼在可能:
FlowPanel panel = new FlowPanel() {
@Override
public void add(Widget child) {
super.add(child);
child.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
}
};
,並使用UiBinder的我做這樣的事情:
<ui:UiBinder ...>
<ui:style>
.vertical > * {
display: inline-block;
}
</ui:style>
<g:FlowPanel styleName="{style.vertical}">
...
</g:FlowPanel>
</ui:UiBinder>
或者你可以通過這個HorizontalFlowPanel
類替代所有HorizontalPanel
引用:
public class HorizontalFlowPanel extends FlowPanel {
private static final String BASIC_CLASS_NAME = "___" + Math.abs(Random.nextInt());
private static final String HORIZONTAL_CLASS_NAME = BASIC_CLASS_NAME + "_H_";
private static final String VERTICAL_CLASS_NAME = BASIC_CLASS_NAME + "_V_";
static {
newCssClass(HORIZONTAL_CLASS_NAME + " > *", "display: inline-block; vertical-align: top;");
newCssClass(VERTICAL_CLASS_NAME + " > *", "display: block;");
}
private static int count = 0;
private final String myClassName = BASIC_CLASS_NAME + count++;
public HorizontalFlowPanel() {
super();
setStylePrimaryName(HORIZONTAL_CLASS_NAME + " " + myClassName);
}
public void setSpacing(int spacing) {
newCssClass(myClassName + " > *", "margin-bottom: " + spacing + "px; margin-right: " + spacing + "px;");
}
public void setPadding(int padding) {
newCssClass(myClassName, "padding: " + padding + "px;");
}
public static void newCssClass(String className, String content) {
StringBuilder builder = new StringBuilder();
builder.append("." + className + " { " + content + " }\n");
Element style = DOM.createElement("style");
style.setAttribute("type", "text/css");
style.setInnerHTML(builder.toString());
Document.get().getHead().appendChild(style);
}
}
相關問題
- 1. 如何在FlowPanel中垂直對齊和水平對齊組件?
- 2. GWT:我如何水平佈局小部件?
- 3. Vaadin水平佈局
- 4. 鈦:UI.Slider在水平佈局
- 5. 混合垂直和水平佈局(水平佈局類圖)
- 6. 如何在垂直佈局中水平佈置物品?
- 7. 如何水平佈局controlArea和mainArea
- 8. 如何在水平線性佈局中水平放置一個視圖
- 9. 把水平相對佈局
- 10. 水平響應式佈局
- 11. Enaml Looper水平佈局
- 12. Bootstrap響應水平佈局
- 13. Packery水平佈局問題
- 14. html佈局 - 水平滾動
- 15. Android:水平翻轉佈局
- 16. 的Android水平佈局與
- 17. Android佈局重心水平
- 18. 水平佈局圖和figurecaption
- 19. Flex Spark Form水平佈局
- 20. Asp.net的gridview水平佈局
- 21. XtraTabbedMdiManager佈局(平鋪垂直,水平平鋪,平鋪水平)
- 22. FlowPanel與GWT中的HTMLPanel UiBinder
- 23. 在gwt bootstrap中水平對齊控件
- 24. 如何在GWT FlowPanel中動態移動小部件?
- 25. 從GWT FlowPanel中移除小部件
- 26. 在HTML中創建一組水平佈局的項目
- 27. 如何在android中水平和垂直滾動表格佈局
- 28. 如何在android佈局中水平設置3個對象
- 29. 如何在Qt中爲水平佈局添加滾動區域?
- 30. 彈簧佈局中的水平線
優選使用`widget.getElement()getStyle()的的setFloat(Float.LEFT);` – 2011-02-15 16:28:54