我的屏幕上有一个滚动窗格,里面有一个垂直框。我在此 vbox 中添加了许多复选框(并且我看到它在扩展),但滚动窗格似乎不知道当内容超过该窗格的高度时它应该开始显示滚动条。我已经尝试更改滚动条策略,但它只显示滚动条,我实际上无法滚动。我该如何解决这个问题?
private void addCheckbox(String checkbox){
CheckBox c = new CheckBox(checkbox);
c.setPadding(this.paddingCheckBoxes);
c.setSelected(true);
this.vBoxFilters.getChildren().add(c);
}
这是 fxml:
<StackPane>
<children>
<ScrollPane fx:id="scrollPaneFilters" prefHeight="878.0" prefWidth="260.0">
<content>
<VBox fx:id="vBoxFilters" minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="200.0" />
</content>
</ScrollPane>
</children>
</StackPane>
尝试删除 fxml 中 VBox 的 prefHeight
对于正在搜索相同问题的其他人,如果将 VBox 放在 ScrollPane 内的 AnchorPane 内,也会出现相同的问题。如果您使用“滚动窗格”而不是“滚动窗格(空)”,则会在 SceneBuilder 中发生这种情况。
我的错误是由于我在 AnchorPane 中添加了scrollPane。我删除了父锚窗格,以便 ScrollPane 成为父容器,之后一切正常。
首先确保您没有在主容器“VBox”上设置定义的高度,然后为了使滚动窗格正常工作,您必须设置一个高度。 示例:
ScrollPanescrollPane = new ScrollPane(); scrollPane.setContent(scrollComposition); scrollPane.setMaxHeight(740);