Это довольно легко настроить с помощью themes и добавить custom style to your menu bar (прокрутите до конца), например menu.addStyleName("red");
. Пример ниже очень прост, но вы получите эту идею.
конфигурации CSS в теме:
.red {
background-color: red;
}
Пример кода:
public class MenuBarComponent extends VerticalLayout {
public MenuBarComponent() {
MenuBar menu = new MenuBar();
// add the custom style
menu.addStyleName("red");
// A top-level menu item that opens a submenu
MenuBar.MenuItem drinks = menu.addItem("Beverages", null, null);
// Submenu item with a sub-submenu
MenuBar.MenuItem hots = drinks.addItem("Hot", null, null);
hots.addItem("Tea", null);
hots.addItem("Coffee", null);
// Another submenu item with a sub-submenu
MenuBar.MenuItem colds = drinks.addItem("Cold", null, null);
colds.addItem("Milk", null);
colds.addItem("Weissbier", null);
// Another top-level item
MenuBar.MenuItem snacks = menu.addItem("Snacks", null, null);
snacks.addItem("Weisswurst", null);
snacks.addItem("Bratwurst", null);
snacks.addItem("Currywurst", null);
// Yet another top-level item
MenuBar.MenuItem servs = menu.addItem("Services", null, null);
servs.addItem("Car Service", null);
addComponent(menu);
}
}
Результат:
![Sample](https://i.stack.imgur.com/E3FCN.png)
Обновление
Сложность v-menubar-popup
сложна, потому что этот элемент создается каждый раз, когда вызывается меню, но не добавляется индивидуальный стиль. В этих условиях можно использовать следующий обходной путь, начиная с указанным выше образцом:
1) Полностью изменить основной стиль в меню для:
menu.setPrimaryStyleName("custom-menubar");
2) В вашей теме создать новый стиль, используя menu-bar mixin и добавить пользовательский стиль для всплывающих окон, а также:
@include valo-menubar("custom-menubar", false);
.custom-menubar-popup {
background-color: red;
height: 90%; // adjust as needed
}
3) это не может быть совершенным, и вы, возможно, придется настроить высоту в зависимости от элементов каждого меню имеет, потому что нет более длинный рассчитанный автоматически, но результат выглядит перспективным ![Result](https://i.stack.imgur.com/NfHyx.png)
Спасибо за ответ. Но моя проблема другая. Это была моя ошибка, я не публиковал свои комментарии, объясняющие точную проблему. Я хочу установить стиль для v-menubar-popup, чтобы я мог контролировать высоту всплывающего окна. Я хочу, чтобы всплывающее окно было 100% высоты, чтобы оно могло расти до нижней части браузера. Но проблема в том, что я не нашел способ сделать это, не воздействуя на другие места. – Duke
@SatyaranjanDas действительно, это совсем другая история. Я обновил свой ответ с возможным обходным решением, см. Нижнюю часть. – Morfic
Благодарим за быстрый ответ. Я попробую один раз и зарегистрирую браузер. – Duke