GWT菜单栏。资源。。。忽略?
我正在创建一个GWT菜单栏。资源。。。忽略?,gwt,clientbundle,Gwt,Clientbundle,我正在创建一个菜单栏,当有子元素要显示时,我想让它显示一个小图标。我想我可以这样做到: interface ActionHeroResources extends ClientBundle, MenuBar.Resources { @Source("actionhero.css") public ActionHeroCSS css(); @Override @Source("agw-dropdown.png") ImageResource 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中,将菜单栏作为子项的项与包含命令的项之间绝对没有区别。我的CSS工作得很好
有什么想法吗?尝试覆盖选定的.gwt菜单栏垂直子菜单图标的CSS样式,如下所示:
.gwt-MenuBar-vertical .subMenuIcon-selected {
background: none;
}
.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;
}
我将其用于我自己选择的项目,效果非常好:
.gwt-MenuBar-vertical .subMenuIcon-selected {
background: url(images/hand_pointer.png) no-repeat 0px 0px;
}
问题最终在于,构成子菜单的弹出面板从父菜单获取样式名,但附加了一个依赖的样式名。我不知道有什么方法可以预测依赖的样式名是什么,因为原始的样式名是模糊的。我通过使用更通用的.gwt菜单栏弹出式样式名解决了这个问题。这仅仅是因为我的程序中只有一种风格的弹出菜单——如果我想让两个弹出菜单看起来不一样,我不确定该怎么办
希望在以后的gwt版本中,菜单栏样式将更接近于传递给菜单栏的资源,并且较少使用依赖样式名称。您只需为子菜单中显示的设置css规则,如下所示:
.gwt-MenuBar-vertical .subMenuIcon-selected {
background: none;
}
.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;
}