libGDX: Как я могу определить, что Scrollpane прокручивается с максимальным Y? - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно добавить новые элементы в список, когда игрок прокрутит в конце.Итак, как я могу обнаружить Scrollpane, достигнутый до конца или максимум Y?

private Table list;
private ScrollPane scrollPane;

private void buildPlayersList() {
    list = new Table();
    scrollPane = new ScrollPane(list);
}

private boolean isTheEnd() {
    // condition !!!
    return scrollPane.getScrollY() >= scrollPane.getMaxY();
}

@Override
public void onTheEndRequest() {
    int offset = list.getRows();
    int limit = 10;

    Actor player = this.getPlayer(offset, limit);

    list.add(player).row();
}

private Actor getPlayer(int offset, int limit) {
    // retrieve player from database
    // ......
    Player player = database.getPlayer();

    Label label = new Label(player.getName(), style);
    return label;
}

1 Ответ

0 голосов
/ 12 февраля 2019

Как уже упоминалось в этом другом вопросе , вы можете использовать ChangeListener, ищущий изменение в getScrollY, чтобы выполнить сравнение ScrollY и MaxY.

s1.vvalueProperty().addListener(new ChangeListener<Number>() {
    public void changed(ObservableValue<? extends Number> ov,
                        Number old_val, Number new_val) {
        // if ScrollY == maxY; then displayMoreItems
        System.out.println(new_val.intValue());
    }
});
...