Привет, сообщество stackoverflow...
Я поместил несколько экземпляров меню (JavaFX) в одно меню (которое находится в подузле GluonMobile-View):

Проблема в том, что подменю мерцают и перекрывают друг друга, когда курсор наводит курсор на одно из них:


Итак, мой вопрос, если кто-то знает решение моей проблемы. (Вид был построен с помощью SceneBuilder)




Начнем с того, что классические десктопные меню не предназначены для использования в мобильных приложениях.
Вам следует рассмотреть разные подходы, такие как NavigationDrawer (javadoc) или BottomNavigation элемент управления (javadoc).
В любом случае, если вам действительно нужно их использовать, вот объяснение проблемы, с которой вы столкнулись:
В конструкторе сцен, когда вы добавляете MenuBar, он по умолчанию включает некоторые элементы управления Menu и MenuItem. Если вы включите тему Gluon Mobile:

вы заметите, что отступы на Menu минимальны, в то время как у MenuItem отступы больше, и установлены минимальные высота и ширина.
Если вы добавите Menu в качестве дочернего элемента другого Menu, если это меню не выбрано или не сфокусировано, оно будет оформлено как MenuItem, но если вы наведете на него фокус, оно будет оформлено как Menu, вызывая ретрансляцию.
Например, на этом рисунке Edit вверху — это меню выбора, а Edit внизу не выбрано.

Сразу после макета, если курсор мыши был достаточно близко к следующему элементу, возможно, сейчас происходит его выделение, что расширит его. При этом прежнее выделенное меню станет невыделенным, и оно снова вырастет...
Вот простой способ решить эту проблему: в вашем файле css для представления добавьте что-то вроде:
.menu,
.menu:focused,
.menu-item {
-fx-padding: 10;
}
таким образом, и меню, и пункты меню во всех случаях имеют одинаковое заполнение, что предотвращает любое возможное мерцание.

Обратите внимание, что с помощью css вы можете переопределить любой предыдущий существующий стиль и изменить его по своему вкусу.