November
November

Reputation: 3

Fill ListView base on its height

I have:

  1. an array of Integer, for example 100000 elements
  2. a ListView with data is a part of the above array

I want to keep the ListView always be filled while changing the vertical size and the vertical scrollbar always hide. I mean listView.getItems.size()=number of current observable cells in the ListView.

How can I do that? Help me plz?

Upvotes: 0

Views: 327

Answers (1)

Panyi
Panyi

Reputation: 106

I have found a solution for it.

You have your ListView and your ObservableList with your integers if not just create one from the array.

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

So when you add or remove something from your observable list the listener will be triggered and the listview size will change

Upvotes: 1

Related Questions