防止在Appcelerator中触发TabGroup doubletap事件

时间:2013-12-23 09:15:55

标签: ios titanium appcelerator titanium-mobile appcelerator-mobile

对于使用Appcelerator Titanium SDK 3.1.2开发的iPad应用程序,我有一个Ti.UI.Tab组,其中包含5个Ti.UI.Tabs。每个选项卡都包含一个根Ti.UI.Window,某些选项卡在相关时打开其他窗口。

当您双击选项卡组中的任何选项卡时,双击选项卡会将其内容重置为根窗口,自动关闭其中已打开的窗口。

我想禁用此功能,但Tab组或Tab本身没有任何属性可以阻止双击发生。

2 个答案:

答案 0 :(得分:1)

使用视图创建自己的TabGroup控件的另一种方法是在Tab中添加一个NavigationGroup控件,以防止在Tab上双击时重置Windows。

在TabGroup的Tab控件中,创建一个空的Window Control并像平时一样将其链接到Tab。然后,创建一个NavigationGroup控件并将其添加到选项卡的根窗口:

//Set up your Tab Group with a Tab and a Root Window for the Tab
var tabGroup = Ti.UI.createTabGroup();

var tabWin = Ti.UI.createWindow({
    navBarHidden:true
});

var tab = Ti.UI.createTab({
    window:tabWin
});
tabGroup.addTab(tab);

//Create a Root Window Control for the Navigation Group
var navWin = Ti.UI.createWindow({
    title:'NavGroup Root Window'
}); 

//Create a NavigationGroup Control and add it to the Root Window
var nav = Ti.UI.iPhone.createNavigationGroup({
    window: navWin
});
tabWin.add(nav);

//Launch Tab Group
tabGroup.open();

在此选项卡中打开Windows时,请使用NavigationGroup.open(Window),而不是使用Tab.open(Window)方法。让NavigationGroup管理Window Stack而不是Tab:

//Open a new Window inside the Navigation Group
var win1 = Ti.UI.createWindow();
nav.open(win1);

//Close this Window you opened
nav.close(win1);

通过执行此操作,当用户双击选中包含NavigationGroup对象的相关选项卡时,可以防止窗口堆栈重置。

答案 1 :(得分:0)

之前我遇到过类似的问题。

结束我编写自己的标签栏来进行标签切换。因此,无论何时单击选项卡按钮,我都可以获取选项卡事件并进行检查。

希望它有所帮助。