我已经创建了一个FlexTable,我想让它在父FlowPanel中水平居中,如下所示:
FlexTable ft = new FlexTable();
ft.add(0, 0, new Label());
ft.add(0, 1, new Orange());
ft.add(0, 2, new Label());
FlowPanel parent = new FlowPanel();
parent.add(ft); // how can I horizontally center the table in this div?表的内容比父FlowPanel (它是width:auto,浏览器的整个宽度)更窄,但是现在表是左对齐的。
谢谢
发布于 2013-01-20 13:49:09
首先呢?您使用的是哪个版本的GWT?我问这个问题的原因是,在FlexTable中没有类似于您在latest version中使用的add (int,int,Widget )的方法。
但是,您可以使用以下代码。
FlexTable ft = new FlexTable();
ft.setWidget(0, 0, new Label("a"));
ft.setWidget(0, 1, new Label("b"));
ft.setWidget(0, 2, new Label("c"));
FlowPanel parent = new FlowPanel();
parent.setSize("100%", "100%");
parent.add(ft);
parent.getElement().getStyle().setProperty("TextAlign", "center");
// If you are using Firefox :
//parent.getElement().getStyle().setProperty("TextAlign", "-moz-center");
RootLayoutPanel.get().add(parent);如果您不想在java代码中提到样式,您可以随时使用CSS,如下所示
parent.addStyleName("myStyle");在CSS中
.myStyle{
text-align : center;
}发布于 2013-01-20 12:42:37
有两个选项:
parent.getElement().getStyle().setTextAlign(TextAlign.CENTER);或
ft.getElement().getStyle().setProperty("margin", "0 auto");当然,您也可以使用CSS样式。
https://stackoverflow.com/questions/14419723
复制相似问题