Фон ячейки Java FX ListView влияет на неокрашенные ячейки при прокрутке - PullRequest
0 голосов
/ 15 мая 2018

Проблема: Я использую ListView в Java Fx, когда ячейка удовлетворяет определенному условию, она окрашивается. Ячейки соответствуют условию Как только я прокручиваю список вверх и вниз, цвет фона переходит ко всем другим ячейкам, даже если они не удовлетворяют условию. Все клетки окрашены

Я знаю, что это связано с поведением ListView, так как он перерабатывает ячейки и некоторые атрибуты, похоже, что фоновые ячейки - один из них. Условие одностороннее, если оно окрашено, оно не будет неокрашенным.

Проверяет состояние каждый раз X или при нажатии кнопки.

Фрагмент кода: Где я устанавливаю CellFactory

groupCheckListView.setCellFactory(new Callback<ListView, ListCell>() {
        @Override
        public ListCell call(ListView param) {
            return new ChangeColor();
        }
    });




// Change cell color
class ChangeColor extends ListCell<String> {
@Override
protected void updateItem(String item, boolean empty) {

    if (empty || item == null) {
        setText(null);
        setGraphic(null);
    } else if (item.toLowerCase().endsWith("done")) {
        setText(item);
        // Fill the "done" cell with color -> "#58FF2D" = light green
        setBackground(new Background(new BackgroundFill(Paint.valueOf("#58FF2D"), CornerRadii.EMPTY, Insets.EMPTY)));
    } else {
        setText(item);
    }

    super.updateItem(item, empty);

}

Файл CSS

.list-cell:empty {
-fx-background-color: white;
}

Если есть какие-либо другие предложения, некоторые вещи отсутствуют или лучше объяснить, просто скажите.

Спасибо =]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...