【问题标题】:Vaadin MenuItem.setStyleName won't workVaadin MenuItem.setStyleName 不起作用
【发布时间】:2017-04-04 22:15:51
【问题描述】:

在 vaadin 中选择此项目后,我尝试更改项目的颜色。但是当我点击一个项目时没有选择 menuItems。

   MenuBar.MenuItem previous = null;

    void createMenuBar(){

        menuBar = new MenuBar();
        menuBar.addItem("First Item", menuItem -> {
            if (previous != null)
                previous.setStyleName(null);
                menuItem.setStyleName("selected");
                previous = menuItem;
                someActions();
        });
        menuBar.addItem("Second Item", menuItem -> {
            // same action 
    });

这是我 style.css 的一部分

.v-menubar-user-menu .v-menubar-menuitem-selected {
    color: #e2f6e7;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
}

.v-menubar-user-menu .v-menubar-menuitem-selected:hover {
    color: #e2f6e7;
}

【问题讨论】:

  • 当您检查设置为“选定”样式的菜单项的样式时,它是否存在?也许你的 CSS 没有选择正确的东西。

标签: css vaadin vaadin7


【解决方案1】:

编辑!

我假设菜单项是一个组件,但事实并非如此。

试试这个:

MenuBar menuBar = new MenuBar();

menuBar.addItem("test",item -> {
    for(MenuBar.MenuItem m : menuBar.getItems())
        m.setStyleName("");
    item.setStyleName("selected");
});

或者,您可以在您的 css 中使用本机 vaadin 样式名称:

v-menubar-menuitem-selected 

【讨论】:

  • menuBar 没有子成员。我只能得到一个 MenuItems 列表
  • 对不起,我认为 menuItem 是某个组件,但事实并非如此。改了答案
猜你喜欢
  • 2013-06-14
  • 2014-05-06
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多