有没有一种方法可以为SplitLayoutPanel的子级设置最大大小?现在我覆盖它的onResize方法并调用JSNI函数来设置中心面板div的父div的右侧或宽度样式属性,右侧面板的div和分割面板的div,如果右/右面板超过400px宽。
我注意到分离器和右侧面板的大小甚至没有跟随鼠标光标,并且在大约4/5和2/5之间大致振荡,它们应该基于鼠标指针的当前位置。
我在eclipse中调试并尝试在没有eclipse的情况下运行它并且它是相同的。我也在调用super.onResize()。
答案 0 :(得分:0)
如果我正确理解您的问题,您希望让SplitLayoutPanel占用父元素的最大空间。为此,您可以使用宽度的百分比属性,如
SplitLayoutPanel slp = new SplitLayoutPanel();
slp.setWidth( "100%" );
在下一步中,您要将子元素添加到SplitLayoutPanel中,它应该占用最大区域。然后将每个子宽度设置为100%
Widget child = // Instantiate any type of widget
child.setWidth( "100%" );
slp.add // Use proper add method and add the child to SplitLayoutPanel
我不明白你的意思是什么 拖动非常跳跃 。你的意思是拆分器尺寸太小,你找不到拆分器。如果是这种情况,您可以通过在构造函数中传递它来增加拆分器大小,如
int splitter_size_in_pixels = 5;
SplitLayoutPanel slp = new SplitLayoutPanel( splitter_size_in_pixels );
答案 1 :(得分:0)
我注意到分离器和右侧面板的大小甚至没有跟随鼠标光标,并且在大约4/5和2/5之间大致振荡,它们应该基于鼠标指针的当前位置。
拖动分离器时,我也看到了不稳定的动作。我的南方窗格包含一个垂直面板,其中包含标签和桌子。修复是设置VerticalPanel height =“100%”。我附上了uibinder代码。
HTH 儒略
<g:SplitLayoutPanel styleName="gwt-SplitLayoutPanelTtc" ui:field="splitLayoutPanel">
<g:north size="40">
...
</g:north>
<g:west size="200">
...
</g:west>
<g:south size="500">
<g:VerticalPanel height="100%" width="100%">
<g:Label ui:field="tableTitle" styleName="tableTitle"></g:Label>
<g:Grid ui:field="table" styleName="gwt-Grid"></g:Grid>
</g:VerticalPanel>
</g:south>
<g:center>
...
</g:center>
</g:SplitLayoutPanel>
答案 2 :(得分:0)
你可以通过添加中间ResizeLayoutPanel来修复生涩/跳跃动作。
MyComposite.ui.xml:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:my.custom.package.client">
<g:SplitLayoutPanel ui:field="splitLayoutPanel">
<g:west size="250">
<g:ResizeLayoutPanel ui:field="leftMenuOuterPanel">
<my:MenuWidget ui:field="menuWidget" />
</g:ResizeLayoutPanel>
</g:west>
<g:center>
<g:ResizeLayoutPanel ui:field="centerOuterPanel">
<my:AwesomeWidget ui:field="centerWidget" />
</g:ResizeLayoutPanel>
</g:center>
</g:SplitLayoutPanel>
</ui:UiBinder>
感谢OlivierH answer