2017-04-04 46 views
0

我嘗試在vaadin中選擇此項之後更改項目的顏色。但是當我點擊一個項目時沒有選擇menuItems。Vaadin MenuItem.setStyleName將不起作用

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; 
} 
+0

當你檢查的風格,你有「選擇」的風格設定的菜單項,它是否存在?也許你的CSS沒有選擇正確的東西。 –

回答

0

編輯的一部分!

我認爲菜單項是一個組件,它不是。

試試這個:

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 
+0

menuBar沒有兒童會員。我只能得到MenuItems列表 – emoleumassi

+0

對不起,我認爲menuItem是一些組件,但事實並非如此。改變了答案 –

+0

那麼這個答案解決了這個問題嗎? –