将小部件添加为子项时,小部件dijit/layout/ContentPane
无法正确调整大小。
重现问题的步骤:
1.在https://jsfiddle.net/9eja3jtr/打开测试用例
1.点击10次按钮“多次点击我!"。
发布日期:
dijit/layout/ContentPane
在添加小部件作为子项时不会调整大小。插入的内容不完全可见。
我需要增加dijit/layout/ContentPane
的尺寸,以容纳新添加的小部件,这样所有内部小部件都应该可见。
我认为这是dijit小部件中的一个bug。如果有的话,我想知道一个变通方法。
注意:我已经向dojo https://bugs.dojotoolkit.org/ticket/19021报告了错误
require(["dijit/layout/ContentPane", "dijit/TitlePane", "dijit/form/Button", "dojo/domReady!"], function(ContentPane, TitlePane, Button) {
this._contentPanel = new ContentPane({
style: "background-color:red;"
}, "contentPanel");
this._titlePanel = new TitlePane({
title: "I'm a TitlePane",
content: "Collapse me!"
}, "titlePanel");
this._button = new Button({
label: "Click me many times!",
onClick: function() {
this._titlePanel.addChild(new Button({
label: "Test",
style: "width: 250px"
}));
}.bind(this)
}, "button");
this._contentPanel.addChild(this._titlePanel);
this._titlePanel.addChild(this._button);
this._contentPanel.startup();
});
3条答案
按热度按时间kkih6yb81#
我认为解决这个问题的简单方法是用一个
BorderContainer
包围你的contentpane
,resize()将自动触发,否则我认为你应该重新计算所有的东西,调整所有封闭的小部件的大小(不使用BorderContainer)下面是一个工作片段:(我已经为内容窗格指定了区域中心以防止错误)
ubby3x7f2#
我认为你应该把ContentPane的
doLayout
标志设置为false,这样它就不会在嵌套的ContentPane上设置大小。另外,删除硬编码的125px高度。cuxqih213#
您可以通过CSS进行简单的变通:
参见https://jsfiddle.net/9eja3jtr/3/