2011-03-02 2 views
1

J'essaie de comprendre comment faire une application multi-écran en utilisant Appcelerator Titanium. Je suis familier avec le développement Android, donc en utilisant le SDK Android je créerais quelques activités différentes, chacun faisant son travail différent (écran de connexion, écran affichant la liste des articles, etc.) Quel est l'équivalent en Titanium? Je sais que app.js est la partie principale de l'application, mais je suppose qu'il n'est pas recommandé de mettre tout le code dans ce seul fichier. L'application d'évier de cuisine a beaucoup de fichiers et de fonctionnalités, mais je ne suis pas sûr de savoir comment ils vont tous ensemble. Alors, quelle est la manière recommandée de créer un projet en Titanium pour une application de base avec quelques écrans faisant des choses différentes? Il me manque le concept Titanium d'un écran.Écrans Appcelerator Titanium Mobile App?

Répondre

2

no ..

vous pouvez le faire comme

var button = Ti.UI.createButton({..}); 

button.addEventListener('click',function(e){ 
    var window = Ti.UI.createWindow({ 
      url:"../newWindow.js", 
      title:"newWindow" 
    }); 

    Titanium.UI.currentTab.open(window,{animated:true}); 
}); 

je recommande d'utiliser le MVC-pattern like i already posted here.

+1

Ok, et si je n'utilise pas d'onglets? ressemble à tous les exemples que je trouve autour des onglets d'utilisation! et dans mon cas, l'application n'utilise pas d'onglets. Si je crée juste une nouvelle fenêtre et appelez sa méthode ouverte alors cela fonctionne, mais dès que l'utilisateur appuie sur le bouton de retour il est jeté dans l'écran d'accueil car il n'a jamais changé d'activité. Cela me semble étrange que personne n'ait signalé un tel problème. – Bilthon

+0

vous devez le voir comme hierachy. chaque appel de fenêtre ouvre un nouveau contexte de fenêtre indépendamment de la manière dont vous ouvrez votre fenêtre. Si vous voulez avoir plusieurs fenêtres simultanément, vous avez besoin d'une barre d'onglets. – mkind

+0

Ok, et si je n'utilise pas d'onglets? ressemble à tous les exemples que je trouve autour des onglets d'utilisation! et dans mon cas, l'application n'utilise pas d'onglets. Si je crée juste une nouvelle fenêtre et appelez sa méthode ouverte alors cela fonctionne, mais dès que l'utilisateur appuie sur le bouton de retour il est jeté dans l'écran d'accueil car il n'a jamais changé d'activité. Cela me semble étrange que personne n'ait signalé un tel problème –

2

fichier app.js est fondamentalement le fichier pour initialiser différents écrans de fenêtre, et utiliser les onglets pour charger les fenêtres screens.Here est un lien pour créer des écrans simples Create Window & Tabs

Pour d'autres propriétés liées à TitaniumUI

+0

Je peux voir comment les fenêtres y sont créées et se déplacer entre eux avec des onglets, mais que faire si j'ai une application sans onglets. Comment puis-je avoir un bouton-clic ouvrir une nouvelle fenêtre (laissant la fenêtre précédente complètement)? – Jake

+0

Vous pouvez ajouter le nouveau code de fenêtre ouverte dans le bouton click event.like: var open_window = Titanium.UI.createButton ({ title: 'Ouvre une nouvelle fenêtre', top: 170, left: 30, right: 30, height: 30 }); open_window.addEventListener ('click', function() {var newWindow = Titanium.UI.createWindow ({ titre: 'Nouvelle fenêtre' }); Titanium.UI.currentTab.open (newWindow, {animée: vrai}); }); –

+1

Cela ressemble plus à ce que j'espérais. Est-ce que cela ouvrira une nouvelle fenêtre et disposera du précédent (celui avec le bouton dessus), ou changera-t-il juste l'écran pour couvrir la fenêtre précédente avec la nouvelle dessus? – Jake

0

essayez d'utiliser mon code ci-dessous:

// functions 
    function openHomescreen(e) 
    { 
     settings.close(); 
     getlucky.close(); 
     survey.close(); 

     homescreen.url   = 'homescreen.js'; 
     homescreen.open(); 
    } 

    function openGetlucky(e) 
    { 
     settings.close(); 
     homescreen.close(); 

     getlucky.url   = 'getlucky.js'; 
     getlucky.open(); 
    } 

// events 
Ti.App.addEventListener('homescreen',openHomescreen); 
Ti.App.addEventListener('getlucky',openGetlucky); 

openHomescreen({}); 

Pour ouvrir l'écran d'accueil dans un autre fichier JS, utiliser.

Ti.App.fireEvent('homescreen'); 
1

Essayez de faire ceci:

app.js

Tintanium.include('window1.js', 'window2.js'); 

... 

    var button1 = Titanium.UI.createButton({...}); 

button1.addEventListener('click',function(){ 
    window1.open(); 
    }); 

window1.js

var window1=Titanium.UI.createWindow({...}); 

...etc... 

Espérons que cela aidera;)

0

Après beaucoup de temps de recherche j'ai trouvé la solution pour ouvrir différentes fenêtres avec un événement de clic attaché à un bouton.

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); 

Dans 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; 
}; 

je trouve la solution dans cette page: http://www.mindfiresolutions.com/Open-New-Window-Without-URL-Property-In-Titanium-2214.php

Questions connexes