Полоса прокрутки не появляется при прокрутке - PullRequest
0 голосов
/ 05 ноября 2018

Я использую HiddenSidesPane, чтобы показать и скрыть полосу прокрутки, когда это необходимо. Полоса прокрутки появляется, когда я перемещаю мышь к краю панели прокрутки, и скрывается, когда я возвращаюсь назад. Тем не менее, у меня есть проблема, чтобы показать полосу прокрутки при обнаружении прокрутки. Вы можете найти мой код ниже:

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();
        }));

Буду очень признателен за любую помощь. Кроме того, я не знаю, почему большой палец полосы прокрутки имеет одинаковую высоту все время, даже если содержание настолько велико, что должно быть меньше. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...