gpt4 book ai didi

java - 胶子移动 : menus in menu are flickering

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:19 26 4
gpt4 key购买 nike

您好 stackoverflow 社区...

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

Node -hierarchy of my view

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

example-image 1

example-image 2

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

最佳答案

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

您应该考虑不同的方法,例如 NavigationDrawer ( javadoc ) 或 BottomNavigation 控件 ( javadoc )。

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

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

您会注意到 Menu 上的内边距很小,而 MenuItem 上的内边距较大,并且已设置最小高度和宽度。

如果您将一个 Menu 添加为另一个 Menu 的子级,如果未选择此菜单或未获得焦点,则其样式将类似于 MenuItem,但如果您将其聚焦,则它将采用 Menu 样式,从而强制重新布局。

例如,在这张图中,顶部的Edit是选择菜单,而底部的Edit未被选中。

在布局之后,如果鼠标光标足够接近下一个项目,则现在可能正在选择它,这将展开它。同时之前选择的菜单将变为取消选择,并且它会再次增长...

这里有一个解决问题的简单方法:在 View 的 css 文件中添加如下内容:

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

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

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

关于java - 胶子移动 : menus in menu are flickering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com