ListView滚动即使它位于列表的开头,也会跳到最后

时间:2014-08-20 01:58:24

标签: javafx-8

由于某些奇怪的原因,当我在列表视图中滚动列表中超过20k的项目时,它会突然滚动到最后。

我甚至还没到最后一半,滚动条突然跳到最后。

我正在使用javafx8_20稳定版本。

这是我的cellfactory,我所做的只是在列表中添加了20k以上的项目,当我滚动浏览它时,它看起来很好,但它会滚动到最后。

The Table

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);
}}

0 个答案:

没有答案