我对ScrollPanel的行为很奇怪。它将高度缩小到30px。 这是我的ui.xml
<g:ScrollPanel styleName="{style.fileViewerWorkspaceBg}">
<g:FlowPanel>
<g:FlowPanel>
<g:FlowPanel>
<my:OneClickFileUploader ui:field="uploader" enableMultipleFileUpload="true" />
</g:FlowPanel>
<g:FlowPanel ui:field="fileTablePanel">
<cell:SimplePager ui:field="pager"/>
<cell:CellTable ui:field="fileViewTable"/>
</g:FlowPanel>
<g:Label ui:field="processingField" />
</g:FlowPanel>
<g:FlowPanel ui:field="filePreview"/>
</g:FlowPanel>
</g:ScrollPanel>
我在filePreview
&amp;之间切换fileTablePanel
+ uploader
,当我显示uploader+fileTablePanel
时,它会显示滚动条,但当我切换到filePreview
时,它会将filePreview
面板的高度缩小为〜30像素。可能是什么问题呢。当我在div
中将ScrollPanel
的子firebug
的高度更改为100%时,它显示页面正常,但似乎我无法访问ScrollPanel的子div,任何解决办法:
此外,当尝试在ScrollPanel
中创建一个UiField时,它会抛出it can have only one child
的异常,实际上它会有一个子节点。
答案 0 :(得分:1)
我知道问题已经有一段时间了,但这是我在遇到同样问题时使用的解决方案:
getContainerElement().getStyle().setHeight(100, Unit.PCT);
这是因为Scroll面板是一个简单的面板。
public ScrollPanel() {
this.scrollableElem = getElement();
this.containerElem = Document.get().createDivElement();
scrollableElem.appendChild(containerElem);
initialize();
}
当通过代码或uibinder设置/添加小部件时,它将使用this.containerElem
来保存其子级
这是由此产生的html。我将它们命名为希望更清楚:
<div id="ScrollPanel" >
<div id="containerElem" style="position: relative; zoom: 1; height: 100%;">
<canvas id="myAddedWidget" />
</div>
</div>
答案 1 :(得分:0)
尝试将带有height:100%;
的styleName设置为FlowPanel(生成HTML中的div)
您的代码“缺少结束标记g:FlowPanel”
在</g:ScrollPanel>
之前标记中可能错误,应该是</g:FlowPanel>
而不是<g:FlowPanel />
。
<ui:style>
.container {
background: #DDD;
height:1500px;
width:100%;
}
.fileViewerWorkspaceBg {
height:100%;
}
.zero {
background-color: yellow;
height:300px;
}
.first {
background-color: blue;
height:50px;
}
.fileTablePanel {
background-color: red;
height:150px;
}
</ui:style>
<g:ScrollPanel styleName="{style.fileViewerWorkspaceBg}">
<g:FlowPanel styleName="{style.container}">
<g:FlowPanel styleName="{style.zero}">
<g:FlowPanel styleName="{style.first}">
<g:Label>OneClickFileUploaderPanel</g:Label>
<my:OneClickFileUploader ui:field="uploader"
enableMultipleFileUpload="true" />
</g:FlowPanel>
<g:FlowPanel styleName="{style.fileTablePanel}">
<g:Label>fileTablePanel</g:Label>
<cell:SimplePager ui:field="pager" />
<cell:CellTable ui:field="fileViewTable" />
</g:FlowPanel>
<g:Label>Label</g:Label>
</g:FlowPanel>
</g:FlowPanel>
</g:ScrollPanel>