J'ai un problème: je crée un conteneur et son contenu est en cours d'exécution. Voici une structure grossière:Traiter l'ajout automatique de barres de défilement
--VBox
---- Formulaire
------- FormItem
...
------ -FormItem
---- ControlBar
Je fixe maxHeights pour la form
conteneur pour le garder dans les limites de l'écran. Mais quand j'obtiens une barre de défilement verticale, l'horizontal apparaît aussi (il semble que ce n'est pas assez de place pour ce VScrollBar).
Pour échapper à ce problème, j'ai créé un écouteur pour défiler horisontal apparaît, donc s'il semble, je vais augmenter contenant un peu, il serait pieds l'autre scrollbar normalement:
form.addEventListener(Event.ADDED, function(event:Event):void{
if(event.target is HScrollBar){
while(form.horizontalScrollBar && form.horizontalScrollBar.visible && !(form.width > form.maxWidth)){
form.width += 10;
form.validateDisplayList();
}
}
});
I J'ai essayé aussi validateNow
et d'autres méthodes similaires. Ce que j'ai ici: 1. Le HScrollBar
est en cours d'ajout. 2. Nous augmentons un peu la largeur du conteneur, donc il disparaît. 3. Lorsqu'il disparaît, la validation renvoie l'exception null-pointer lorsqu'il essaie de mesurer la barre de défilement inexistante. J'ai également essayé d'ajouter validateProperties
avant la validation, mais cela n'a pas fonctionné non plus.
Quelqu'un peut-il aider à se débarrasser de ce rouleau ennuyeux? :)
Avez-vous ou n'avez-vous pas défini horizontalScrollPolicy sur votre composant et, si oui, à quelle valeur? – cobaltduck
horizontalScrollPolicy également comme verticalScrollPolicy n'a pas été défini explicitement. Donc, ils devraient être mis en auto, autant que je comprends. – Antenka