gluon mobile:菜单中的菜单闪烁

gluon mobile: menus in menu are flickering

你好 Whosebug 社区...

我已将多个 (JavaFX) Menu -实例放入一个 Menu(位于 GluonMobile-View 的子节点中):

问题是,当 courser 悬停其中一个时,子菜单会闪烁并相互重叠:

所以我的问题是,是否有人知道我的问题的解决方案。 (视图是使用 SceneBuilder 构建的)

对于初学者来说,经典的桌面菜单并不是真的要在移动应用程序中使用。

您应该考虑不同的方法,例如 NavigationDrawer (javadoc), or the BottomNavigation control (javadoc)。

无论如何,如果您确实需要使用它们,这里是对您面临的问题的解释:

在 Scene Builder 上,当您添加 MenuBar 时,它默认包含一些 MenuMenuItem 控件。如果启用 Gluon Mobile 主题:

您会注意到 Menu 上的填充是最小的,而 MenuItem 上的填充更大,并且已设置最小高度和宽度。

如果您将 Menu 添加为另一个 Menu 的子项,如果此菜单未 select 编辑或聚焦,则其样式类似于 MenuItem,但是如果您聚焦它,它将被样式化为 Menu,强制重新布局。

例如,在这张图片中,顶部的 Edit 是 select 菜单,而底部的 Edit 不是 selected。

在布局之后,如果鼠标光标距离下一个项目足够近,现在可能正在 selecting 它,这将展开它。同时,以前的 selected 菜单将变为 deselected,并且会再次增长...

这是解决问题的简单方法:在视图的 css 文件中,添加如下内容:

.menu,
.menu:focused,
.menu-item {
    -fx-padding: 10;
}

所以菜单和菜单项在所有情况下都有相同的填充,防止任何可能的闪烁。

请注意,使用 css 您可以覆盖任何以前的现有样式并根据自己的喜好进行修改。