Почему я не могу изменить CSS-список ячеек в ListView?

Я хочу, чтобы мои списочные ячейки появлялись с курсором "указатель"/"удерживать" при наведении курсора. Мне удалось настроить таргетинг на весь listView, добавить цвет фона и т. Д., Но его, как и ячеек списка, не существует. Нужно ли устанавливать фабрику ячеек вручную?

РЕДАКТИРОВАТЬ: я получил ответ, что мне не нужно указывать ячейки вручную, достаточно добавить.list-cell для добавления стиля. Мой CSS должен работать нормально, потому что я могу изменить цвет фона на других элементах, но не.list-cell. Я также попробовал FX-курсор

РЕДАКТИРОВАТЬ 2: Теперь я проверил в рамках Preview Builder сцены> таблицы стилей сцены> добавить таблицу стилей, и в этом документе я поместил:

.list-cell{
-fx-cursor: pointer;
}
.test{
-fx-background-color: black;
}

По-прежнему не идет, когда я предпросмотр с образцами данных.

EDIT3: Скриншот Курсор не отображается на скриншотах, но я могу показать вам, что мой CSS работает, но не в ячейке списка.

Пока я пробовал:

CSS:

.list-cell{
    -fx-background-color:black;
    -fx-cursor: pointer;
}
#test .list-cell{
    -fx-background-color:black;
    -fx-cursor: pointer;
}
.test .list-cell{
    -fx-background-color:black;
    -fx-cursor: pointer;
}

ДЖАВА:

teamListView.setCellFactory(new Callback<ListView<String>, 
javafx.scene.control.ListCell<String>>()
        {
            @Override
            public ListCell<String> call(ListView<String> teamListView)
            {
                return new ListCell();
            }
        });

Код:

Мой контроллер:

public class MainPageController implements Initializable {
    public static ObservableList<String> data = 
FXCollections.observableArrayList();

    @FXML
    private Label label;
    @FXML
    private ListView<String> teamListView;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
       Team escala = new Team("Escala", "Conrad Adams", 4987000);
       ArrayList<Team> teams = new ArrayList<Team>();
       teams.add(escala);
       data.add(teams.get(0).getName());
       teamListView.setItems(data);

    }     

}

1 ответ

Решение

Я получил исправление, у меня нет объяснения, хотя:

Изменено

.list-cell{
-fx-cursor: hand;
}

к

.list{
}
.list-cell:filled:hover{
-fx-cursor: hand;
-fx-text-fill: dimgrey;
}

Мой первый элемент CSS, похоже, как-то игнорируется, остальные активируются

Другие вопросы по тегам