由于某些奇怪的原因,当我在列表视图中滚动列表中超过20k的项目时,它会突然滚动到最后。
我甚至还没到最后一半,滚动条突然跳到最后。
我正在使用javafx8_20稳定版本。
这是我的cellfactory,我所做的只是在列表中添加了20k以上的项目,当我滚动浏览它时,它看起来很好,但它会滚动到最后。
itemList.setCellFactory(new Callback,ListCell>(){
@Override
public ListCell<Item> call(ListView<Item> arg0) {
ListCell<Item> cell = new ListCell<Item>() {
@Override
public void updateItem(Item item, boolean empty) {
super.updateItem(item, empty);
if (item != null || !empty) {
System.out.println(item.getId());
setText("Test " + item.getId());
} else {
setGraphic(null);
System.out.println("null");
}
}
};
return cell;
}
});
示例代码:
@Override
public void start(Stage primaryStage) {
ListView<Integer> listview = new ListView<>();
StackPane layout = new StackPane();
for (int j = 0; j < 10000; j++) {
listview.getItems().add(j);
}
layout.getChildren().add(listview);
primaryStage.setScene(new Scene(layout, 150, 250));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}}