1
ListView似乎已经有一个滚动条。我希望滚动条始终可见。原因是因为我在它上面添加了一个标题,并且在滚动条和标题之间的角落有一个按钮。我怎样才能让ListView滚动条始终显示?总是显示垂直滚动条为JavaFX ListView
ListView似乎已经有一个滚动条。我希望滚动条始终可见。原因是因为我在它上面添加了一个标题,并且在滚动条和标题之间的角落有一个按钮。我怎样才能让ListView滚动条始终显示?总是显示垂直滚动条为JavaFX ListView
你可以把它变成一个适当大小的滚动面板和设置滚动窗格为ALWAYS的直条政策:
@Override
public void start(Stage primaryStage) throws Exception {
ScrollPane pane = new ScrollPane();
ListView<String> list = new ListView<String>();
ObservableList<String> items = FXCollections.observableArrayList(
"Single", "Double", "Suite", "Family App");
list.setItems(items);
pane.prefWidthProperty().bind(list.widthProperty());
pane.prefHeightProperty().bind(list.heightProperty());
pane.setContent(list);
pane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
Group group = new Group();
group.getChildren().add(pane);
Scene scene = new Scene(group, 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
谢谢,但你的代码示例不做得比较工作。水平滚动也会不必要地显示出来,并且在列中具有较宽的值时,会被截断而不是水平滚动条正常工作。 – mentics
我的代码工作原理:您没有要求水平滚动条的行为,但仅针对垂直滚动条。如果你不想让水平滚动条出现,你应该问这个问题。一个简单的'pane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER)''然而就足以实现这一点。 – Sebastian
这不是那么简单(我希望是)。问题是ListView被自动创建在一个默认的大小,它不符合其内容的大小(我发布了另一个关于这个问题)。因为它不会自动调整ListView的大小,所以我不认为这个解决方案会起作用。如果你有一个额外的宽列,你会在滚动窗格内获得ListView的水平滚动条。如果向代码添加很多行,则会看到它们被截断,无法看到它们(如果不禁用滚动条的水平滚动条,则会看到两个垂直滚动条)。 – mentics