contextualMenu项onSelected显示另一个菜单

时间:2015-01-13 14:55:04

标签: smartface.io

是否可以在选择的OptionalMenu项目上显示另一个菜单,如果我点击第一个菜单上的项目,app停止运行。

function rightMenuF() {

 var item1 = {
    title : lang["lng_logout"],
    //icon : "Icon.png", // Android 3.0 only
    //itemType : SMF.UI.MenuItemType.cancel, //  iOS Optional Menu only
    onSelected : function (e) {
        openNewMenu();
    }
};
var items = [item1];
Menus.RightOptionalMenu = new SMF.UI.Menu({
    menuStyle : SMF.UI.MenuStyle.optionalMenu, 
        title : lang["lng_settings"],
        //icon : "Icon.png",
        items : items
    });
Menus.RightOptionalMenu.show();
}

function openNewMenu() {

 var item1 = {
    title : lang["lng_logout"],
    //icon : "Icon.png", // Android 3.0 only
    //itemType : SMF.UI.MenuItemType.cancel, //  iOS Optional Menu only
    onSelected : function (e) {
        alert("a");
    }
};
var items = [item1];
Menus.NewOptionalMenu = new SMF.UI.Menu({
    menuStyle : SMF.UI.MenuStyle.optionalMenu, 
        title : lang["lng_settings"], 
        //icon : "Icon.png", 
        items : items
    });
Menus.NewOptionalMenu .show();
}

通过actionBar项触发rightMenuF。

1 个答案:

答案 0 :(得分:0)

可能但您的codeLines中存在一些JavaScript问题。

首先,您可以在项目中使用Menu.JS作为指南,还有一篇关于http://www.smartface.io/developer/guides/controls/menu-object/的菜单对象的文章。

现在,创建一个新项目。

打开Global.JS文件并取消注释下面的codeLine;

 load("Menu.js");

现在,打开Menu.JS文件并更改如下代码;

var item1 = {
    title : "My Item 1",
    icon : "icon.png", // Andrid 3.0- only
    itemType : SMF.UI.MenuItemType.destructive, //  iOS Optional Menu Only
    onSelected : function (e) {
        Menus.newMenu2.show();

        alert("First item is selected");
    }
};

var item2 = {
    title : "My Item 2",
    itemType : SMF.UI.MenuItemType.destructive, //  iOS Optional Menu Only
    onSelected : function (e) {
        alert("Second item is selected");
    }
};

var items = [item1, item2];

Menus.newMenu = new SMF.UI.Menu({
        menuStyle : SMF.UI.MenuStyle.contextualMenu,
        title : "Menu Title", // iOS Optional Menu Only
        icon : "menu_icon.png", // Android Context Menu Only
        items : items
    });

Menus.newMenu2 = new SMF.UI.Menu({
        menuStyle : SMF.UI.MenuStyle.optionalMenu,
        title : "Menu Title", // iOS Optional Menu Only
        icon : "menu_icon.png", // Android Context Menu Only
        items : items
    });

//    Use following commands to show menus
/*
Menus.newMenu.show();
Menus.newMenu2.show();
*/

现在创建一个按钮,并在其onPressed事件上写下面的代码;

Menus.newMenu.show();

当您运行项目时,如果您按下该按钮,它将显示第一个菜单。如果您触摸第一个项目,它将显示第二个菜单。