私は持っている:
- 整数の配列、たとえば 100000 要素
- データを含む ListView は上記の配列の一部です
垂直サイズを変更し、垂直スクロールバーを常に非表示にしながら、ListView を常に塗りつぶしておきたい。つまり、listView.getItems.size()=ListView 内の現在観測可能なセルの数です。
どうやってやるの?助けてください。
私はそれに対する解決策を見つけました。
配列から整数を作成するだけでなく、整数をListView
持っています。ObservableList
ListView lv = new ListView();
ObservableList integerArray = FXCollections.observableArrayList();
//set the items
lv.setItems(integerArray);
//add a change listener to the observable list
integerArray.addListener(new ListChangeListener() {
@Override
public void onChanged(Change change) {
//set the height of the ListView accordingly
lv.setPrefHeight((lv.getItems().size() * 25));
}
});
したがって、監視可能なリストに何かを追加または削除すると、リスナーがトリガーされ、リストビューのサイズが変更されます