Titanium appcelerator:从其他窗口返回时未触发窗口焦点事件

时间:2013-10-18 09:00:38

标签: android titanium appcelerator appcelerator-mobile

我最近开始使用钛appcelerator开发Android应用程序。并且遇到了一个问题,这个问题对于那些精通Titanium的人来说似乎是一个非常小的问题,但它让我成为初学者的头疼。

我有两个名为子窗口的窗口。单击按钮,我将从重定向到子窗口窗口。现在每当我从子窗口按下模拟器上的按钮时。我编写了关闭当前窗口的逻辑,即子窗口,以便我可以查看窗口。即使子窗口成功关闭也行得正常,甚至我可以查看窗口。但是现在如果我试图点击窗口中没有发生的按钮。

即使我尝试在窗口中捕获焦点事件,该窗口在应用程序初始加载时发生但当我在子窗口并关闭子窗口时,窗口中未触发文件焦点事件。

这是我的代码

APP.JS

var win1 = Titanium.UI.createWindow({  
    backgroundColor:'black'
});

var btngo=Ti.UI.createButton({
    title : "Go !!!!",
    top : "30%"
});

var lbltitle=Ti.UI.createLabel({
    text : "This is home page",
    font : {fontSize : "20%"} ,
    top : "20%",
    color : 'white'
});

//Event listener for adding clicking event
btngo.addEventListener('click',function(e){
    var nextwindow=Ti.UI.createWindow({
        url : "window.js"   
    });
    nextwindow.open();
});
win1.addEventListener('focus',function(e)
{
    alert("main window focused");
});
win1.addEventListener('android:back', function (e) 
{
  win1.close();
});
win1.add(lbltitle);
win1.add(btngo);
win1.open();

WINDOW.JS

var childwindow=Ti.UI.createWindow({
    backgroundColor : "white"
});


var btnhome=Ti.UI.createButton({
    title : "HOME PAGE"
});


var lbltitle=Ti.UI.createLabel({
    text : "This is child window",
    font : {fontSize : "20%"} ,
    top : "20%",
    color : 'white'
});
//For adding event listener for detecting click on home page button
btnhome.addEventListener('click',function(e){
     childwindow.close();   
});

//Adding event listener for detcting back button click in android 
childwindow.addEventListener('android:back', function (e) {
  childwindow.close();
});

childwindow.add(lbltitle);
childwindow.add(btnhome);
childwindow.open();

希望我能尽快解决问题。

1 个答案:

答案 0 :(得分:0)

你正在window.js中创建另一个窗口。可能这是问题所在。尝试更改window.js文件,如下所示

var childwindow=Ti.UI.currentWindow;
childwindow.backgroundColor = 'white'; //You may specify the same while creating the window
var btnhome=Ti.UI.createButton({
    title : "HOME PAGE"
});


var lbltitle=Ti.UI.createLabel({
    text : "This is child window",
    font : {fontSize : "20%"} ,
    top : "20%",
    color : 'white'
});
//For adding event listener for detecting click on home page button
btnhome.addEventListener('click',function(e){
     childwindow.close();   
});

//Adding event listener for detcting back button click in android 
childwindow.addEventListener('android:back', function (e) {
  childwindow.close();
});

childwindow.add(lbltitle);
childwindow.add(btnhome);

希望这可以解决问题:)