水平滚动条出现一会儿然后消失
问题描述:
我正在使用UiBinder和DockLayoutPanel,如下所示。我将一个自定义CellTable添加到名为“contentPanel”的ScrollPanel。水平滚动条出现一会儿然后消失
当第一次创建CellTable时,会出现一个水平滚动条(以及cellTableLoading.gif)。 CellTable加载完成后,水平滚动条消失。
如何防止水平滚动条出现在第一位?
我很乐意提供任何其他帮助解决问题的信息。非常感谢!
<g:DockLayoutPanel unit='PX' styleName="{style.wrap}">
<g:north size='180'>
<g:HTMLPanel styleName='{style.header}'>
<g:Hyperlink ui:field="logoutLink" styleName="{style.login}"/>
</g:HTMLPanel>
</g:north>
<g:south size="70">
<g:HTMLPanel styleName="{style.footer}">
<g:Label>© Copyright by</g:Label>
</g:HTMLPanel>
</g:south>
<g:center>
<g:HTMLPanel styleName='{style.content}'>
<g:SimplePanel styleName='{style.left}' ui:field="navigationPanel" />
<g:ScrollPanel styleName='{style.right}' ui:field='contentPanel' />
<div style="clear: both;" ></div>
</g:HTMLPanel>
</g:center>
答
不可能知道为什么会发生没有看到多数民众赞成正在生成的标记和CSS样式,但要关闭滚动条临时,你可以做到以下几点:
// Before you load your table
contentPanel.getElement().getStyle().setOverflow(Overflow.HIDDEN);
// load your table
// ....
// after table is loaded
contentPanel.getElement().getStyle().setOverflow(Overflow.AUTO);
作为一个侧面说明,您还应该将<g:center>
中的面板实现为LayoutPanel
而不是浮动div。它会给你一个更可预测的布局:
<g:center>
<g:LayoutPanel styleName='{style.content}'>
<g:layer left="0" width="200px">
<g:SimplePanel styleName='{style.left}' ui:field="navigationPanel" />
</g:layer>
<g:layer right="0" left="200px">
<g:ScrollPanel styleName='{style.right}' ui:field='contentPanel' />
</g:layer>
</g:LayoutPanel>
</g:center>
你也,显然需要从.left
和.right
删除任何盒模型相关联的样式,像width
和float
。
谢谢。 Overflow.NONE无法识别,但Overflow.HIDDEN工作 – Justin 2011-12-22 02:23:35
@Justin,是的它隐藏:)我写了这个没有IDE方便和深夜:)我更新了我的答案,所以人们不会重复错误! – Strelok 2011-12-22 02:54:13