我正在使用 GXT 3.0.0b。
我在 ContentPanel 上有一个网格。当我明确设置 ContentPanel 宽度时,滚动没有问题。但是,当我将网格放入 VerticalLayoutContainer 时,网格的垂直滚动条会消失,并且只能使用鼠标滚轮进行滚动。
有谁知道如何解决这个问题?
最后我设法解决了这个问题。答案相当优雅:当我将网格添加到 VerticalLayoutContainer 时,我应该指定 VerticalLayoutData 参数。
例子:
verticalLayoutContainer.add(grid, new VerticalLayoutData(1, 1));
您还可以传递分数,例如,0.6 会将宽度(或高度)设置为 60%。如果您通过 -1,则组件将拥有自己的默认像素大小。
Grid
我在 a中遇到了同样的问题ContentPanel
,即网格没有显示垂直滚动条。我ContentPanel#forceLayout
在将网格添加到面板后立即使用,它解决了问题。这是实际的代码:
Grid<Pet> grid = new Grid<>(listStore, columnModel);
grid.setBorders(true);
grid.setColumnReordering(true);
grid.setLoadMask(true);
grid.setSelectionModel(selectionModel);
grid.setView(createGridView());
ContentPanel contentPanel = new ContentPanel();
contentPanel.setHeaderVisible(false);
contentPanel.add(grid);
contentPanel.forceLayout(); // <---- this is the line that fixed the problem!
我意识到这是旧的,但我想说 Artem 的解决方案帮助我解决了与 GXT 2.3 网格滚动类似的问题。在我们的例子中,我们使用的是 FitLayout,因此在 add() 调用中包含 FitData(0) 解决了我们的问题。
我们的问题是我们有一个 TreeGrid,当其中一个 Tree 项目展开时,网格会将展开的行跳出视图。将网格添加到根面板时添加 FitData() 对象解决了该问题。