1

J'ai 3 vues cachées (loader, locker et debug) (touchEnabled et visible à false, et zIndex à 1) au dessus de la vue principale (zIndex = 2).Modifier la propriété visible modifie parfois la position centrale de la vue (bug possible?)

Chaque 'sur' vue a cette méthode:

$.debugView.show = function() { 

    $.debugView.touchEnabled = $.debugView.visible = true; 

    $.debugView.zIndex = 3; 
}; 

$.debugView.hide = function() { 

    $.debugView.touchEnabled = $.debugView.visible = false; 

    $.debugView.zIndex = 1; 
}; 

Cet écran a l'extrémité 3 'sur' vues cachées:

enter image description here

Maintenant, j'ouvre la « vue de débogage ', mais, PARFOIS il semble que cela change les positions (comme si le centre est dans le coin supérieur gauche au lieu du centre de l'appareil).

enter image description here

Au lieu du résultat requis:

enter image description here

Si j'utilise l'opacité au lieu de la propriété visible, il fonctionne correctement.

Cela peut être un bug SDK non?

<Alloy> 
    <Window> 
     <View id="content"/> 
     <View id="locker"/> 
     <View id="loader"/> 
     <View id="debugView"/> 
    </Window> 
</Alloy> 

Toutes ces 4 vues n'ont pas la largeur ou la hauteur (il utilise le Ti.UI.FILL par défaut)

Répondre

2

Je l'ai remarqué cela aussi avec une implémentation complètement différente. J'avais juste une vue que j'avais incluse dans une fenêtre.

Apparemment, les calculs de gauche et de haut n'ont pas été effectués correctement si les éléments sont masqués.

Ce que je l'ai fait pour résoudre le problème est de coder en dur la gauche/première position en calculant la position gauche en utilisant ceci:

$.content.left = (Ti.Platform.displayCaps.platformWidth - 75)/2; 

Lorsque, dans mon cas, 75 est la largeur de l'élément a, de manière qui va soyez plus grand dans votre cas. Vous pouvez faire la même chose pour la hauteur.

Maintenant, il s'agit d'une solution iOS uniquement. Sur Android, vous devrez prendre en compte DPI pour le calculer.

Je pense que c'est un bug, bien que cette solution fonctionne parfaitement pour moi. Je recommande de regarder JIRA et de voir si c'est un problème connu, et sinon, soulevez-le avec une explication très précise du problème, de préférence avec un cas reproductible livré comme une application. Classic aiderait le plus. Et si ce n'est pas reproductible en classique, cela pourrait être un problème d'alliage.

+0

Merci @Rene Pot! Dans mon cas, je continuerai à utiliser l'opacité afin d'éviter les calculs de taille, de toute façon je vais créer un ticket JIRA pour cela. –

+1

FYI: https://jira.appcelerator.org/browse/AC-4706. J'ai collé votre réponse là-bas, c'est bon pour vous? –

+0

génial, et pas de problème –