Я использую 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();
}));
Буду очень признателен за любую помощь. Кроме того, я не знаю, почему большой палец полосы прокрутки имеет одинаковую высоту все время, даже если содержание настолько велико, что должно быть меньше.
Спасибо!