我有一个包装Label和FormLayout的VerticalLayout。 VerticalLayout按默认为中心对齐其组件。标签按预期对齐居中。 FormLayout没有。
当我在调试视图中查看组件树时,FormLayout的宽度跨越VerticalLayout的整个宽度。但它的子(文本字段)与左边对齐,宽度较低(我认为是默认值)。
我的代码:
function uploadPics(images, label) {
//console.log("Ok, going to upload "+images.length+" images.");
var defs = [];
images.forEach(function(i) {
//console.log('processing '+i);
var def = $.Deferred();
function win(r) {
if($.trim(r.response) === "0") {
console.error("this one failed");
def.resolve(0);
} else {
def.resolve(1);
}
}
function fail(error) {
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
def.resolve(0);
}
var uri = encodeURI("http://websiter.com.br/mobile/receive.php");
var options = {
chunkedMode: false,
fileKey: "file",
fileName: label[i.substr(i.lastIndexOf('/')+1)],
//mimeType: "image/jpeg",
params: {
method: "photos"
}
};
var ft = new FileTransfer();
ft.upload(i, uri, win, fail, options);
defs.push(def.promise());
});
$.when.apply($, defs).then(function() {
console.dir(arguments);
});
}
我做错了什么,如何将FormLayout置于VerticalLayout的中心?
答案 0 :(得分:1)
我找到了一个解决方案(虽然FormLayout似乎表现得很奇怪):
我没有调用setSizeFull()
而是调用setSizeUndefined()
让FormLayout只包装其子组件所需的空间。这允许包装布局使FormLayout居中。
我无法做到的事情:我无法将FormLayout设置为全宽并将其子项对齐。