我有一个带3个按钮的水平面板:Back,Next和Cancel。我已经在右侧进行了水平对齐,但只有“下一步”和“取消”按钮遵循此对齐方式。
以下是代码:
HorizontalPanel buttons = new HorizontalPanel();
buttons.setWidth("100%");
cancel = new Button("Cancel");
next = new Button("Next");
back = new Button("Back");
buttons.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
buttons.add(back);
buttons.setCellWidth(back, "98%");
buttons.add(nextBtn);
buttons.setCellWidth(next, "1%");
buttons.add(cancel);
buttons.setCellWidth(cancel, "1%");
问题在于此面板宽度。但是如果我删除它,我的所有按钮都会保持对齐。作为一种解决方法,我可以使用false按钮,它将是不可见的,并且单元格宽度= 97%,后退按钮的单元格宽度为1%。但这不是我需要的,因为尽管这个隐形按钮消耗了少量内存,它仍然是一个记忆:)
这种对齐出了什么问题?面板宽度可能有问题吗?希望得到你的帮助,谢谢你。
答案 0 :(得分:3)
HorizontalPanel 中有 setCellHorizontalAlignment()属性。有了它,您可以对其小部件进行对齐。
请尝试以下操作:
buttons.setCellHorizontalAlignment(backButton, HasHorizontalAlignment.ALIGN_RIGHT);
buttons.setCellHorizontalAlignment(nextButton, HasHorizontalAlignment.ALIGN_RIGHT);
buttons.setCellHorizontalAlignment(cancelButton, HasHorizontalAlignment.ALIGN_RIGHT);
答案 1 :(得分:2)
使用css可以更轻松地实现这一目标:
FlowPanel panel = new FlowPanel();
panel.setWidth("100%");
cancel = new Button("Cancel");
cancel.getElement().getStyle().setFloat(Float.RIGHT);
next = new Button("Next");
next.getElement().getStyle().setFloat(Float.RIGHT);
back = new Button("Back");
back.getElement().getStyle().setFloat(Float.RIGHT);
panel.add(back);
panel.add(nextBtn);
panel.add(cancel);