在滚动窗格JavaFX8中更改CSS的缩略图长度

时间:2016-10-02 20:01:56

标签: css javafx slider scrollpane

我想通过CSS缩短滚动窗格中的拇指,我已经使用了min,max和pref高度,但它似乎不起作用,我错过了什么或者这个编辑需要在另一个级别完成容器(.track或.track-background)。

.scroll-pane > .scroll-bar:vertical > .thumb{
   -fx-pref-height: 5;
   -fx-min-height:  5;
   -fx-max-height:  5;

2 个答案:

答案 0 :(得分:0)

这不能通过CSS完成。 ScrollBar皮肤只需根据visibleAmount和曲目大小调整拇指大小即可。简单地忽略了CSS属性。

目前还不清楚,为什么你会先尝试这样做。如果这样做,它会导致ScrollBar的不寻常/不直观的行为,即无法将拇指向下移动直到底部到达轨道的末端并且拇指的大小未根据content的{​​{1}}的大小。

答案 1 :(得分:0)

不幸的是,正如Fabian指出的那样,不可能使用CSS来做到这一点。但是,您可以通过创建ScrollBarSkin类的副本并在那里明确设置thumbLength来实现。

然后像这样改变皮肤-

for (Node node : yourScrollPane.lookupAll(".scroll-bar")) {
ScrollBar s = (ScrollBar) node;

s.setSkin(new YourScrollBarSkin(s));

}

我还建议添加以下内容,以在内容不足以使其可滚动时禁用滚动条-

if(this.snapSizeY(Utils.clamp(this.minThumbLength(), this.trackLength * visiblePortion, this.trackLength)) == this.trackLength)
{
    incButton.setDisable(true);
    decButton.setDisable(true);
    thumb.setDisable(true);
    track.setDisable(true);
}