【问题标题】:Dropdown menu in ext.js 6 toolbarext.js 6 工具栏中的下拉菜单
【发布时间】:2016-11-14 16:56:12
【问题描述】:

我有一个 ExtJs 6.2。带有在Main.js 中定义的工具栏的应用程序如下:

Ext.define('MyApp.view.main.Main', {
    extend: 'Ext.Container',
    xtype: 'app-main',

    requires: [
        'Ext.layout.VBox'
    ],

    views: [
        'MyApp.view.main.WrapperMainContent'
    ],

    controller: 'mainController',

    layout: {
        type: 'vbox',
        pack: 'center',
        align: 'stretch'
    },
    margin: '0 0 0 0',
    items: [
        {
            xtype: 'toolbar',
            docked: 'top',
            items: [
                { text: 'Option 1', handler: 'onOption1Click' },
                { text: 'Option 2', handler: 'onOption2Click' },
                { text: 'Option 3', handler: 'onOption3Click' },
            ]
        },
        {
            xtype: 'wrapperMainContent',
            flex: 1
        }
    ]

});

如何将 2 项(选项 1、选项 2)转换为下拉菜单?所以它应该看起来像这样(当你悬停或点击Menu时:

   __________________________
   | Menu       |   Option 3 |
   |-------------------------|
   |   Option 1 |
   |   Option 2 |
    ____________

我找到了一个很好的工具栏和下拉菜单示例here,但我真的不知道我必须把代码放在哪里。

我已经尝试过使用类似的东西

items: [
    { text: 'Menu', menu: [{text: 'Option 1'}, {text: 'Option 2'}] },
    { text: 'Option 3', handler: 'onOption3Click' },
]

但这不起作用。

编辑:

我发现上面的代码适用于 @Alexander 证明的经典工具包。但我使用现代工具包。有没有办法做到这一点?

【问题讨论】:

  • 对不起,我忘了说我使用的是现代工具包。有没有办法使用现代工具包而不是经典工具包来做同样的事情?
  • 不,没有,因为如何将菜单项悬停在触摸屏上。您可以查看现代工具包的文档/参考,搜索菜单,您会发现按钮没有,只有视口有,并且该菜单不是树,只是一个列表。
  • 谢谢,我想我会试试这个:examples.sencha.com/extjs/6.2.0/examples/kitchensink/… 如果你愿意,你可以发表你的评论,这对现代工具包不起作用,我会接受。

标签: javascript extjs extjs6 extjs6-modern


【解决方案1】:

现代工具包中没有可用的按钮菜单,大概是因为现代工具包针对触摸手势进行了优化。

您有两种选择,而不是深层嵌套菜单按钮:

  1. 您可以使用从您选择的视口边缘滚动的平面菜单。 Viewport 有一个 setMenu 配置,可以采用 Ext.Menu,它只提供一个平面菜单。
  2. 如果您在移动设备上打开它,您可以嵌套list 视图,例如ExtJS 6 kitchen sink does。在这种情况下,你会得到一个全屏列表,当你点击一个项目时,子列表会显示在整个屏幕上。如果要转到父菜单,请使用左上角的后退按钮。

第一个选项是响应式网站如何提供菜单,后者更像是手机的设置菜单。两者都有其用途和缺点,两者都应该为用户所知,并且应该或多或少是预期的行为,具体取决于您的应用应该更像一个应用还是一个网站。

【讨论】:

猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多