1

我正在创建一个MenuBar,我想让它在有要显示的子元素时显示一个小图标。我以为我可以这样实现:

interface ActionHeroResources extends ClientBundle, MenuBar.Resources
{
    @Source("actionhero.css")
    public ActionHeroCSS css();

    @Override
    @Source("agw-dropdown.png")
    ImageResource menuBarSubMenuIcon();
}

private static final ActionHeroResources RESOURCES = GWT.create(ActionHeroResources.class);

MenuBar actionMenu = new MenuBar(true, RESOURCES);

public ActionHero()
{
    actionMenu.addItem("Select", aSelectMenuFullOfOptions);
}

但是菜单出现了“选择”一词,没有图标!我很肯定我的 ImageResource 工作正常,因为我稍后使用同一资源中的 menuBarSubMenuIcon().getURL(),并且我的图像会按您的预期显示。在 GWT 生成的 HTML 中,以 MenuBars 为子项的项与以 Commands 为项的项之间完全没有区别。我的 CSS 工作正常。

有什么想法吗?

4

3 回答 3

2

尝试覆盖 .gwt-MenuBar-vertical .subMenuIcon-selected 的 CSS 样式,如下所示:

.gwt-MenuBar-vertical .subMenuIcon-selected {
    background: none;
}

我将它用于我自己选择的项目,效果很好:

.gwt-MenuBar-vertical .subMenuIcon-selected {
    background: url(images/hand_pointer.png) no-repeat 0px 0px;
}
于 2011-10-28T09:57:45.163 回答
0

问题最终是形成子菜单的弹出面板从父级获取样式名,但附加了一个从属样式名。我不知道如何预测依赖样式名将是什么,因为原始样式名被混淆了。我通过使用更通用的 .gwt-MenuBar 弹出样式名解决了这个问题。这只有效,因为我的程序中只有一种弹出菜单样式 - 如果我想让两个弹出窗口看起来不同,我不确定我会怎么做!

希望在以后的 gwt 版本中,MenuBar 样式将更接近于传递给菜单栏的资源,并且较少使用依赖的样式名称。

于 2011-12-08T00:27:14.987 回答
0

您可以简单地为出现在子菜单中的 css 规则设置如下:

.subMenuIcon > img {
    /* override gwt sub menu icon */
    width: 6px !important;
    height: 11px !important;
    background: url('your-image-relative-path.png') no-repeat 0px 0px !important;
}
于 2013-04-30T08:23:31.557 回答