Как ограничить количество прокрутки ScrollPane делает - PullRequest
0 голосов
/ 05 июня 2018

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

Изображение1 - Верхняя часть панели прокрутки Image 1, top of the ScrollPane

Изображение 2 - На полпути вниз по полосе прокрутки Image 2, top of the ScrollPane

Как вы можете видеть, есть многопространства в нижней части, в идеале это перестало бы иметь возможность прокручиваться после того, как «TestIdleLevel2» становится видимым.

ScrollPane:

ScrollPane itemCollectionScrollPane = new ScrollPane(itemCollection);
    itemCollectionScrollPane.setPrefSize(shopInterface.getPrefWidth()*1.55, shopInterface.getPrefHeight());
    itemCollectionScrollPane.setHbarPolicy(ScrollBarPolicy.NEVER);
    itemCollectionScrollPane.getStylesheets().add(Shop.class.getResource("/cssFolder/TransparentScrollPane.css").toExternalForm());

Преобразует для элементов в нем:

itemBox.getTransforms().add(new Translate(shopInterface.getTranslateX() - itemBox.getPrefWidth() / 8,
                shopInterface.getTranslateY() + (counter * shopInterface.getPrefHeight() / 3), 0));
        itemCollection.getChildren().addAll(itemBox);

Каждое преобразование отделяется счетчиком, чтобы отделить его, это останавливается после того, как элементы были пройдены (4).Предпочтительная высота установлена ​​около 300, и должна быть увеличена до 400 благодаря ScrollPane.Однако ScrollPane расширяет его примерно до 500-600.

1 Ответ

0 голосов
/ 06 июня 2018

Проблема: itemCollection инициализировался с тем же размером, что и shopInterface.

Решение: Инициализируйте высоту как меньший экземпляр shopInterface.(В данном случае точная сумма была shopInterface.getHeight () / 4).

Отдельное спасибо Фабиану.

...