- Загрузите список со списком (a).
- В ответ на изменение переключения я переключу содержимое списка в другой список (b). Если список (a) длиннее списка (b), то избыточные элементы остаются отображаемыми в списке, даже если они больше не могут быть выбраны.
Например, buyList = {'100532', '100533'} и saleList = {'100000'}. Если я начну с выбора radioBuy, в списке появятся «100532» и «100533». Переключение переключателя с radioBuy на radioSale приведет к отображению списка «100000» и «100533». «100533» не выбирается, но остается видимым.После наблюдаемого изменения списка, в списке JavaFX8 показывается часть старого списка
Показаны сами наблюдаемые списки и указаны правильные размеры. Просто дисплей ListView показывает старые данные.
Вещи, которые я пробовал:
1. ticketListView.getItems().clear()
, а затем перестроить новый список перед переключением списка.
2. Использование ticketListView.getItems().removeAll(0, ticketListView.getItems().size())
3. Использование цикла для удаления каждого элемента отдельно. 4. Использование ticketListView.refresh()
в сочетании со всеми перечисленными выше.
Мой тумблер ChangeListener:
typeGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
if (typeGroup.getSelectedToggle().equals(radioBuy))
ticketListView.setItems(buyList);
if (typeGroup.getSelectedToggle().equals(radioTransfer))
ticketListView.setItems(transList);
if (typeGroup.getSelectedToggle().equals(radioSale))
ticketListView.setItems(saleList);
}
});
Как мне получить ListView самой заготовки, прежде чем он переключает содержание?
Есть ли у вашего списка список пользовательских сотовых фабрик? Если да, включите его в вопрос. –
Нет фабрики ячеек. Я просто изменил метод toString объектов, содержащихся в списке, поэтому список можно считать списком строк. –
ОК, поэтому моя первая догадка неверна. Я никогда не видел такого поведения: ожидаемое поведение заключается в том, что просто вызвать 'setItems (...)' достаточно, чтобы полностью обновить представление списка. Я рекомендую вам создать [MCVE] и [изменить] ваш вопрос, чтобы включить его. –