首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GXT菜单按钮的样式

GXT菜单按钮的样式
EN

Stack Overflow用户
提问于 2012-08-07 07:32:58
回答 1查看 1.1K关注 0票数 0

我看到GXT菜单只能通过setMenu()方法在CellButtonBase子类的实例上设置。我想要显示一个图像而不是按钮,并在用户单击该图像时显示一个菜单。不幸的是,Image不是CellButtonBase的子类,因此我不能将GXT菜单附加到它。那么,如果我必须使用TextButton (这似乎是我唯一的选择),我如何才能使它看起来像一个图像?没有关于这个主题的文档或示例。我在Sencha GXT论坛上请求支持,但没有得到任何回应。

EN

回答 1

Stack Overflow用户

发布于 2012-08-07 09:24:35

好了,我找到了一种不用TextButton就能做到的方法。添加图像并调用menu.show(...)在单击处理程序中。

代码语言:javascript
复制
  private void createMenu() {
    menu = new Menu();

    Image menuButtonImage = new Image(Resources.INSTANCE.nav_preferences());
    menuButtonImage.addStyleName(CSS.header_bar_icon());
    menuButtonImage.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        menu.showAt(getAbsoluteLeft(), getAbsoluteTop() + MENU_OFFSET_FROM_IMAGE_TOP);
      }
    });
    menu.addShowHandler(new ShowEvent.ShowHandler() {
      @Override
      public void onShow(ShowEvent event) {
        highlight();
      }
    });
    menu.addHideHandler(new HideEvent.HideHandler() {
      @Override
      public void onHide(HideEvent event) {
        removeHighlight();
      }
    });
    menu.setStyleName(CSS.menu());
    add(menuButtonImage);

  }
  private void addUserSettings() {
    MenuItem userSettingsItem = new MenuItem("User Settings");
    userSettingsItem.addSelectionHandler(new SelectionHandler<Item>() {
      @Override
      public void onSelection(SelectionEvent<Item> event) {
        _coreLayout.showUserSettingsPage();
      }
    });
    userSettingsItem.setStyleName(CSS.menu_item());
    menu.add(userSettingsItem);
  }

  private void highlight() {
    addStyleName(CSS.header_bar_icon_box_selected());
  }

  private void removeHighlight() {
    removeStyleName(CSS.header_bar_icon_box_selected());
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11837390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档