如何在JavaFX中隐藏ListView的水平滚动条

10

如何隐藏 ListView 的水平滚动条?我尝试了不同的方法,可能很容易,但我就是无法让它运行。


欢迎来到Stack Overflow!我们鼓励您研究问题。如果您已经尝试过某些方法,请将其添加到问题中 - 如果没有,请先研究和尝试您的问题,然后再回来。 - user647772
3个回答

36

尝试在CSS中使用以下代码:

.list-view .scroll-bar:horizontal .increment-arrow,
.list-view .scroll-bar:horizontal .decrement-arrow,
.list-view .scroll-bar:horizontal .increment-button,
.list-view .scroll-bar:horizontal .decrement-button {
    -fx-padding:0;
}

除此之外,我发现将ColumnResizePolicy保持不受限制,并使最小列宽度足够宽以适应其中的所有内容,当表格获得焦点时就不会出现水平滚动操作。 - Mark Meyers
1
@MarkMeyers 什么是ColumnResizePolicy?它在哪里控制? - Chrisuu

1

我认为使用一个Pane(例如StackPane)和一个Label的ListCell会更好,这样可以实现省略功能:

StackPane pane = new StackPane();
pane.setStyle("-fx-border-color:red;");
pane.setMinWidth(0);
pane.setPrefWidth(1);
pane.getChildren().add(label);

你可以查看这个链接

相同的解决方案也可用于其他复杂的ListCells。


0

有些取巧,但这应该可以实现。在 CSS 中:

.list-view .scroll-bar:horizontal {
    -fx-opacity: 0;
    -fx-padding:-7;
}

请注意滚动条仍然存在,鼠标手势在其“应该”出现的位置周围会导致滚动行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接