滚动时不出现滚动条

时间:2018-11-05 14:02:21

标签: javafx

我正在使用HiddenSidesPane在需要时显示和隐藏滚动条。当我将鼠标移到ScrollPane的边缘时,滚动条出现;当我移回时,滚动条隐藏。但是,当检测到滚动时,我在显示滚动条时遇到问题。您可以在下面找到我的代码:

FXML:

    <?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.VBox?>
<?import org.controlsfx.control.HiddenSidesPane?>
<?import java.net.URL?>
<ScrollPane xmlns:fx="http://javafx.com/fxml"
            fx:controller="hypermap.components.featurespanel.view.properties.PropertiesTab" fx:id="propertyTabRoot"
            fitToWidth="true" hbarPolicy="NEVER" vbarPolicy="NEVER">
    <stylesheets>
        <URL value="@Scrollbar.css"/>
    </stylesheets>
    <HiddenSidesPane fx:id="hiddenSidesPane" minWidth="280">
        <content>
            <VBox fx:id="vboxInsideScroll">
                <VBox fx:id="groupsContainer"/>
                <VBox fx:id="messageContainer"/>
            </VBox>
        </content>
    </HiddenSidesPane>
</ScrollPane>

CSS文件:

.scroll-pane{
    -fx-focus-color: none;
    -fx-background-color: transparent;

}

.scroll-bar > .increment-button, .decrement-button, .increment-arrow, .decrement-arrow{
    -fx-pref-height: 0;
}

.scroll-bar:vertical{
    -fx-background-color: transparent;
    -fx-border-color: transparent;
    -fx-pref-width: 10;
    -fx-padding: 0;
}

.scroll-bar:vertical .thumb{
    -fx-background-color: color-dark-slate;
    -fx-border-radius: 100;
    -fx-padding: 0 4 0 0;
    -fx-opacity: 0.2
}

.scroll-bar:vertical .track{
    -fx-background-color: transparent;
}

具有使用HiddenSidesPane方法的控制器文件:

@FXML
private VBox groupsContainer;

@FXML
private VBox messageContainer;

@FXML
private ScrollPane propertyTabRoot;

@FXML
private HiddenSidesPane hiddenSidesPane;

private void makeScrollable(ScrollPane scrollPane) {
        final Node scrollbar = scrollPane.lookup(".scroll-bar:vertical");


        hiddenSidesPane.setRight(scrollbar);
        hiddenSidesPane.setTriggerDistance(40);
        hiddenSidesPane.setAnimationDuration(Duration.millis(500));

        scrollPane.setOnScroll((event -> {
            hiddenSidesPane.setRight(scrollbar);
            event.consume();
        }));

我将非常感谢您的帮助。而且,我不知道为什么滚动条的拇指总是一直都高,即使内容太大而应该变小也是如此。 谢谢!

0 个答案:

没有答案