2009-09-18 7 views
1

J'ai un problème avec les barres de défilement flexibles. J'ai un composant mxml basé sur le canevas. A l'intérieur, j'ai utilisé une VBox pour mon formulaire. Au-dessus de cette Vbox, j'ai une autre toile juste pour le titre.Problème de barre de défilement verticale Flex

Mon formulaire est plus long que la taille normale de l'écran lorsque la grille à l'intérieur contient plus de données. Dans ce cas, je veux une barre de défilement verticale juste pour Vbox dans lequel mon formulaire est situé. Mais la toile entière obtient la barre de défilement comprenant la toile de titre. Comment résoudre ce problème.

J'ai défini la règle de barre de défilement verticale de la zone de travail principale sur Désactivée et à l'intérieur de VerticalScrollbarPolicy de Vbox sur Activé. mais ça ne marche pas. Il ne remplace pas la propriété du conteneur parent.

Merci. Gardez votre formulaire à l'intérieur d'un canevas à l'intérieur du canevas parent au lieu de VBox.

Répondre

3

VBox et HBox sont configurés pour se développer automatiquement dans le conteneur parent, donc si votre formulaire se développe, votre VBox correspondante augmentera également.

+0

Merci. Ça marche. –

+0

Veuillez évaluer la réponse s'il vous a aidé. –

1

Vous souhaitez surcharger la fonction "updateDisplayList" pour votre canevas parent, et forcer la hauteur de votre formulaire Vbox à être canvasHeight-titleHeight (y compris padding, espace, etc ...) pour que la VBox ne croisse jamais plus grande que l'écran. Cela va résoudre votre problème. Assurez-vous simplement de vérifier l'existence de la VBox, car parfois la commande updateDisplayList sera appelée avant d'être instanciée.

0

J'ai eu le même problème moi-même et j'ai décidé de prendre la route facile. Les composants suivants sont ajoutés dynamiquement à la dernière vbox: App-> vbox -> [vbox + hbox] Wantbox hbox pour rester à l'écran et avoir des barres de défilement uniquement dans la vbox au-dessus (2ème vbox).
Éprouvait le même problème. Tous les conteneurs avaient une politique de défilement = off sauf pour la dernière vbox, mais lors de l'ajout dynamique de composants, lorsque les composants remplissaient la vbox> 100%, la vbox externe commençait à défiler.
La résolution était simple une fois que je suis revenu à la documentation.
Définir la stratégie de défilement - horizontal et vert sur l'application et la première vbox sur off, et également ajouté autoLayout = false. Cela amène le moteur à ne pas redimensionner les composants après l'initialisation, c'est-à-dire qu'ils sont de taille statique.
Une fois que j'ai ajouté cette propriété, plus de barres de défilement à l'exception de la vbox interne.
Tada!

Questions connexes