在单击按钮上创建新窗口时,UI会冻结

时间:2012-12-18 10:13:26

标签: titanium appcelerator

我是Titanium的新手,我遇到了一个问题。 在我的app.js中,我在窗口中包含一个左侧菜单和控件(app.js和leftmenu.js)

我想在用户点击菜单项时加载一个窗口。基本上,我想在用户选择主页按钮时加载app.js主窗口。 为此,我在leftmenu.js文件中输入以下代码:

var newWin = Titanium.UI.createWindow({
    url: "app.js",
    zIndex: 0
});
win.close(); // closing main window
leftMenu.close(); // closing left menu
newWin.open(); //should reload the main window and the leftmenu

重新加载窗口,但所有控件都被禁用。我们无法点击任何控件。就像所有控件都在一个看不见的层下一样。 有什么想法吗?

我复制/粘贴代码部分,也许会更清楚:)

btnaccueil.addEventListener('click',function(e) {
   var newWin = Titanium.UI.createWindow({        
       url: "app.js",
       zIndex: 0
   });

   // Closing current instance for freeing memory
   win.close();
   leftMenu.close();
   newWin.open({animated:true});
   Ti.API.info(var_dump(newWin));
});

1 个答案:

答案 0 :(得分:0)

您好我知道它一个月后,但您使用的是require&export以及exports / module.exports吗?这里有一个关于如何以正确的方式打开一个按钮事件的新窗口的例子,我认为使用url属性已被弃用,所以我希望这个例子可以帮助你理解

<强> employee.js

//Current window (employee window)
var employeeWin = Ti.UI.currentWindow;

//define button
var moveToDetailBtn = Ti.UI.createButton({
   width      : 200,      //define the width of button
   height      : 50,      //define height of the button
   title         : 'Show Detail'   //Define the text on button
});

//Click event to open the Employee Details window
moveToDetailBtn.addEventListener('click', function(){

   //Call a export function
   var win = require('employeeDetails').getEmployeeDetailSWin;

   //Create new instance
   var employeeDetailsWin = new win();

   //Open the Employee Details window
   employeeDetailsWin.open();
});

//Add the button to the window
employeeWin.add(moveToDetailBtn);

在employeeDetails.js

exports.getEmployeeDetailSWin = function(){

   //Creates a new window
   var empDetailsWin = Ti.UI.createWindow({
      backgroundColor   : '#ffffff'      //Define the backgroundcolor of the window
   });

   //Addin a label to the window
   empDetailsWin.add(Ti.UI.createLabel({
      width      : 100,      //Define width of the label
      height      : 50,      //Define height of the label
      title         : 'Employee Details'
   }));

   return empDetailsWin;
};

除了我不确定你是否可以导出你的app.js尝试使用新的.js