我通过扩展qx.ui.core.scroll.AbstractScrollArea来创建自定义小部件。这是代码粗略
qx.Class.define("headers.HeadersList", {
extend : qx.ui.core.scroll.AbstractScrollArea,
include: [
qx.ui.core.MRemoteChildrenHandling
],
construct: function() {
this.base(arguments);
this.__container = this._createItemsContainer();
this.getChildControl("pane").add(this.__container);
},
members: {
__container: null,
_createItemsContainer: function() {
const layout = new qx.ui.layout.VBox(10);
const container = new qx.ui.container.Composite(layout);
container.setPaddingRight(3);
return container;
},
getChildrenContainer: function() {
return this.__container;
}
}
});
内容是动态添加的。问题是当滚动条出现时,内容的宽度会缩小,以便为滚动条腾出空间。
我做了一个小游乐场的例子,以显示我的意思http:// tinyurl.com/yygunxya
如果按“添加TextField”按钮4次以上,则会出现滚动条,文本框会变窄。
无论滚动条是否可见,TextBoxes宽度如何保持不变?
如果您希望文本字段不调整到可用空间,则必须首先设置所需的宽度,并且必须禁止收缩:
const textField = new qx.ui.form.TextField(range.toString()).set({
allowShrinkX: false,
width: 300
});