我的应用程序出现了新问题,我正在使用Appcelerator Titanium进行开发。 我想从我的设备锁定Backbutton,所以当我使用他时,App不会关闭。我想关闭应用程序只有我在主要菜单。所以这是我的代码:
Ti.UI.currentWindow.addEventListener('android:back',function(){
alert(Ti.App.PositionNow);
if(Ti.App.PositionNow=='0') {
alert('do quit');
} else if(Ti.App.PositionNow=='1') {
Ti.App.multi_tableView.addEventListener('click',myfunction);
var duration = 300;
var setOldOpacity = Titanium.UI.createAnimation();
setOldOpacity.opacity = 1;
setOldOpacity.zIndex = 1;
setOldOpacity.duration = duration;
var setOldBottom = Titanium.UI.createAnimation();
setOldBottom.bottom = 0;
setOldBottom.duration = duration;
var setOldTop = Titanium.UI.createAnimation();
setOldTop.top = 0;
setOldTop.duration = duration;
var animationHandler2 = function() {
setOldTop.removeEventListener('complete',animationHandler2);
Ti.App.multi_view_first.animate(setOldTop);
Ti.App.multi_view_second.animate(setOldBottom);
Ti.App.multi_tableView.animate(setOldOpacity);
};
setOldTop.addEventListener('complete',animationHandler2);
Ti.App.multi_view_first.animate(setOldTop);
Ti.App.multi_view_second.animate(setOldBottom);
Ti.App.multi_tableView.animate(setOldOpacity);
alert('hallo1');
Ti.App.PositionNow = 0;
}
return false;
});
我有一个变量,我在菜单的层次结构中跟踪用户的位置。因此应用程序只应在位置为“0”时关闭。
如果位置为“1”,则应该有一个动画,所以这样可行,但在动画期间,应用程序会立即关闭。
窗口的代码是:
Ti.App.hs_win = Ti.UI.createWindow({
url: '/sites/homescreen/index.js',
navBarHidden: true,
fullscreen: true,
modal:true,
theme: "Theme.Titanium",
orientationModes: [Ti.UI.PORTRAIT]
});
答案 0 :(得分:4)
您已暂停监控android:back
的事件。请使用androidback
活动。
第二步是在事件处理程序链中进一步停止事件冒泡。为此,您需要取消活动:
Ti.UI.currentWindow.addEventListener('androidback',function(event){
event.cancelBubble = true;
}
此外,您还必须修改窗口并将exitOnClose
属性设置为false