2017-04-04 13 views
0

このアイテムをvaadinで選択した後、アイテムの色を変更しようとしています。アイテムをクリックするとmenuItemは選択されません。ここで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

に変更しました。その答えが問題を解決しましたか? –

関連する問題