JavaFX ListView Поведение изменения размера - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть ListView, в который я добавляю список HyperLink,

Ниже MCVE ,

public class TestListView extends Application {

private int counter = 0;

@Override
public void start(Stage stage) {
    ListView<String> listView = new ListView<>();
    listView.setCellFactory(param -> new ListCell<String>() {
        @Override
        protected void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);

            if (empty || item == null) {
                setText(null);
            } else {
                Hyperlink link = new Hyperlink(item);
                setGraphic(link);
                setText(item);
            }
        }
    });
    stage.setScene(new Scene(listView));
    stage.show();

    Timeline fiveSecondsWonder = new Timeline(new KeyFrame(Duration.seconds(2), (ActionEvent event) -> {
        listView.getItems().add("Link " + counter++);
    }));
    fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE);
    fiveSecondsWonder.play();

}

public static void main(String[] args) {
    launch(args);
}
}

Нетпроблема с добавлением ссылок в ListView, но когда я изменяю размер (1011 *) в вертикальном направлении (вручную - с помощью мыши), записи строк дублируются.

Как я могу исправить это поведение?

1 Ответ

0 голосов
/ 28 сентября 2018

Когда listCell пуст, вы устанавливаете только текст.Установите изображение также на ноль.В противном случае при повторном использовании ячеек графическая часть помеченного изображения все еще отображается, пока не будет перезаписана.

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