将 DynamicForm 水平对齐到 VLayout 的中心
Align DynamicForm Horizontally to the Center of VLayout
有什么方法可以将 DynamicForm 水平对齐到 VLayout 的中心吗?我已经尝试了 this 展示演示中的操作,但它不适用于表单(它确实适用于 IButton)。
这是我的代码:
public class PreferencesStackSection extends SectionStackSection {
private static final String SAVE_ICON = "icons/save.png";
private static final int COMPONENT_GAP = 10;
// Object used to get access to internationalization constants and messages
private BMSimulatorConstants constants = GWT.create(BMSimulatorConstants.class);
private DataSource ds;
private DynamicForm form;
private IButton saveBtn;
public PreferencesStackSection(String title) {
super(title);
ds = DataSource.get("preferences");
buildPreferencesLayout();
}
private void buildPreferencesLayout() {
VLayout layout = new VLayout(COMPONENT_GAP);
layout.setMargin(COMPONENT_GAP * 2);
layout.setDefaultLayoutAlign(Alignment.CENTER);
createPreferencesForm(layout);
createSaveButton(layout);
this.addItem(layout);
}
private void createPreferencesForm(VLayout layout) {
form = new DynamicForm();
form.setNumCols(1);
form.setTitleOrientation(TitleOrientation.TOP);
form.setDataSource(ds);
layout.addMember(form);
}
private void createSaveButton(VLayout layout) {
saveBtn = new IButton(constants.preferencesSaveButton());
saveBtn.setIcon(SAVE_ICON);
saveBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
DSCallback callback = new DSCallback() {
public void execute(DSResponse response, Object rawData, DSRequest request){
SC.say(constants.preferencesSavedOK());
}
};
form.saveData(callback);
}
});
layout.addMember(saveBtn);
}
}
这解决了问题(行的顺序对于它的工作非常重要):
private void createPreferencesForm(VLayout layout) {
form = new DynamicForm();
form.setDataSource(ds);
form.setNumCols(1);
form.setTitleOrientation(TitleOrientation.TOP);
layout.addMember(form);
form.setWidth("70%");
for(FormItem item: form.getFields()){
item.setWidth("*");
}
}
有什么方法可以将 DynamicForm 水平对齐到 VLayout 的中心吗?我已经尝试了 this 展示演示中的操作,但它不适用于表单(它确实适用于 IButton)。
这是我的代码:
public class PreferencesStackSection extends SectionStackSection {
private static final String SAVE_ICON = "icons/save.png";
private static final int COMPONENT_GAP = 10;
// Object used to get access to internationalization constants and messages
private BMSimulatorConstants constants = GWT.create(BMSimulatorConstants.class);
private DataSource ds;
private DynamicForm form;
private IButton saveBtn;
public PreferencesStackSection(String title) {
super(title);
ds = DataSource.get("preferences");
buildPreferencesLayout();
}
private void buildPreferencesLayout() {
VLayout layout = new VLayout(COMPONENT_GAP);
layout.setMargin(COMPONENT_GAP * 2);
layout.setDefaultLayoutAlign(Alignment.CENTER);
createPreferencesForm(layout);
createSaveButton(layout);
this.addItem(layout);
}
private void createPreferencesForm(VLayout layout) {
form = new DynamicForm();
form.setNumCols(1);
form.setTitleOrientation(TitleOrientation.TOP);
form.setDataSource(ds);
layout.addMember(form);
}
private void createSaveButton(VLayout layout) {
saveBtn = new IButton(constants.preferencesSaveButton());
saveBtn.setIcon(SAVE_ICON);
saveBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
DSCallback callback = new DSCallback() {
public void execute(DSResponse response, Object rawData, DSRequest request){
SC.say(constants.preferencesSavedOK());
}
};
form.saveData(callback);
}
});
layout.addMember(saveBtn);
}
}
这解决了问题(行的顺序对于它的工作非常重要):
private void createPreferencesForm(VLayout layout) {
form = new DynamicForm();
form.setDataSource(ds);
form.setNumCols(1);
form.setTitleOrientation(TitleOrientation.TOP);
layout.addMember(form);
form.setWidth("70%");
for(FormItem item: form.getFields()){
item.setWidth("*");
}
}