Как установить меньший класс в списке кнопок в Java - PullRequest
3 голосов
/ 04 июня 2019

Я хотел добавить меньше классов к кнопке, когда она была выбрана.

У меня есть список кнопок треков:

    @Inject
    @DataField("trackButtonList")
    @ListContainer("div")
    private ListComponent<Integer, StationTrackButton> trackButtonList;

Когда я выбираю одну из них, я пытаюсьчтобы установить активный класс для соответствующей кнопки:

        trackButtonList.setSelector(b -> b.setSelected(true));
        trackButtonList.setDeselector(b -> b.setSelected(false));

        public void setSelected(boolean isSelected) {
           if (isSelected) {
                trackButton.classList.add("active");
           } else {
                trackButton.classList.remove("active");
           }
        }

Я не могу установить класс "активный", когда выбрана одна кнопка.Однако, если я добавлю класс "active" в Google Chrome на devTools, кнопка получит соответствующий цвет фона.

У меня есть этот код для этой части в html:

    <div data-field="trackButtonList" class="nav nav-pills nav-fill">
    <button data-field="trackButton" class="nav-item nav-link"></button>
</div>

И вменьший файл:

&.nav-item.nav-link {
    &.active {
        background-color: @light-green-color;
    }}

TrackButton вводится следующим образом:

    @Inject
    @Named("button")
    @DataField("trackButton")
    private HTMLElement trackButton;

1 Ответ

0 голосов
/ 05 июня 2019

Я думаю, что в коде LESS есть небольшая ошибка, она должна быть:

.nav-item.nav-link {
    &.active {
        background-color: @light-green-color;
    }
}

Тем не менее, я не думаю, что проблема в этом. Я думаю, что вы помечаете компонент как выбранный. Иногда ListComponent.selectComponent() не работает должным образом, если вы не используете правильный экземпляр компонента в качестве параметра.

Попробуйте использовать ListComponent.selectModel().

...