0

Je veux ajouter des transitions de fenêtre à l'ouverture et la fermeture d'une fenêtre dans Android.Titanium: Transitions de fenêtre ne fonctionne pas sur Android

Création pour Windows est transistions décrit dans la documentation ici: http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window

foo.js a le fichier tss suivant:

"#win": { 
    theme: "Theme.AppCompat.Translucent.NoTitleBar", 
    fullscreen: false, // To make it heavy-weight (although this should not be needed for > v3.2.0) 
} 

J'ai essayé les méthodes suivantes:

Méthode 1

Alloy.createController('foo') 
    .getView().open({ 
     activityEnterAnimation: Ti.Android.R.anim.fade_in, 
     activityExitAnimation: Ti.Android.R.anim.fade_out 
    }); 

L'animation entrée ci-dessus fonctionne comme prévu. Cependant, le fondu ne fonctionne pas.

Méthode 2

Alloy.createController('foo') 
    .getView().open({ 
     activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN, 
     activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT 
    }); 

Ni fondu d'entrée ou sur travaillée

Méthode 3

"#win[platform=android]": { 
    activityEnterAnimation: Titanium.UI.Android.TRANSITION_FADE_IN, 
    activityExitAnimation: Titanium.UI.Android.TRANSITION_FADE_OUT, 

    // OR 
    // activityEnterAnimation: Ti.Android.R.anim.fade_in, 
    // activityExitAnimation: Ti.Android.R.anim.fade_out, 
} 

Ni fondu d'entrée ou à travaillé pour les deux cas.

Répondre

1

Yahya Uddin

transitions de fenêtre ne fonctionne dans Android, si vous voulez animer les fenêtres alors vous devez utiliser l'animation avec settimeout. et sa coutume.

+0

Que voulez-vous, il ne fonctionne pas? Est-ce un bug? Haas ça a été rapporté? –

1

Vous avez deux options

activité * Transitions

Il n'y a aucun moyen d'utiliser le activity*Transitions sans sharedElement. Il y a un ticket ouvert au https://jira.appcelerator.org/browse/TIMOB-20507 qui montre un correctif (doit être ajusté pour la première fenêtre ou ajouter animated:false lors de l'ouverture de la première fenêtre si vous utilisez le correctif).

activité * Animation

Les activity*Animation animations fonctionnent comme ceci:

var win = Ti.UI.createWindow({ 
    backgroundColor: '#fff' 
}); 

var win2 = Ti.UI.createWindow({ 
    backgroundColor: '#f00' 
}); 

var btn = Ti.UI.createButton({ 
    title: "open" 
}); 

win.add(btn); 

var btn2 = Ti.UI.createButton({ 
    title: "close" 
}); 

win2.add(btn2); 

btn2.addEventListener("click", function() { 
    win2.close({ 
     activityExitAnimation: Ti.Android.R.anim.fade_out 
    }); 
}); 

btn.addEventListener("click", function() { 
    win2.open({ 
     activityEnterAnimation: Ti.Android.R.anim.fade_in, 
     activityExitAnimation: Ti.Android.R.anim.fade_out 
    }); 
}); 

win.open(); 

Testé avec 6.1.2.GA et 6.2.2.GA

Solution pour l'activité * Transitions

Le activity*Transitions travaillent comme ceci:

var win = Ti.UI.createWindow({ 
    backgroundColor: '#fff', 
    activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT, 
    activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE 
}); 

var win2 = Ti.UI.createWindow({ 
    backgroundColor: '#f00', 
    activityEnterTransition: Titanium.UI.Android.SLIDE_RIGHT, 
    activityExitTransition: Titanium.UI.Android.TRANSITION_EXPLODE 
}); 
// Create label in window A with a unique transitionName. 
var titleInWinA = new Ti.UI.createLabel({ 
    text: 'Top 10 pics from Mars!', 
    left: 70, 
    top: 6, 
    width: 200, 
    height: 30, 
    transitionName: 'title', 
    color: "#000" 
}); 
win.add(titleInWinA); 

var btn = Ti.UI.createButton({ 
    title: "open" 
}); 
btn.addEventListener("click", function() { 
    win2.addSharedElement(titleInWinA, "title"); 
    win2.open(); 
}); 
win.add(btn); 
win.open(); 
var titleInWinB = new Ti.UI.createLabel({ 
    text: 'Top 10 pics from Mars!', 
    left: 50, 
    top: 10, 
    width: 200, 
    height: 30, 
    transitionName: 'title', 
    color: "#000" 
}); 
win2.add(titleInWinB); 

Gardez à l'esprit qu'ils sont des propriétés creation only de la fenêtre et ne sont pas utilisés en tant que paramètres pour window.open() comme le activity*Animation