2010-07-28 26 views
0

Je crée un HBox, le remplis d'une grille de boutons et définit la politique de défilement. Lorsque je redimensionne la fenêtre, la taille de la scène change, tout comme le HBox ... jusqu'à un certain point. Une fois qu'il atteint la hauteur de la grille qu'il contient, il cesse de rétrécir, comme s'il avait une "hauteur minimale". Cela ruine la barre de défilement que j'essaie d'établir dans ce cas.Comment modifier la taille d'un HBox dans Flex pour l'adapter à son conteneur?

J'ai réglé la hauteur à 100%, ne devrait-il pas toujours prendre la hauteur de la scène, son parent?

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application 
xmlns:mx="http://www.adobe.com/2006/mxml" 
initialize="init();" horizontalScrollPolicy="off" verticalScrollPolicy="off" width="100%"> 

<mx:Script> 
    <![CDATA[ 
     import mx.controls.Button; 
     import mx.containers.Grid; 
     import mx.containers.GridRow; 
     import mx.containers.GridItem; 

     protected function init():void {  
      for (var i:int = 0; i < 3; i++) { 
       var gRow:GridRow = new GridRow(); 
       gRow.percentWidth = 100; 
       gRow.height = 100; 
       var gItem:GridItem = new GridItem(); 
       gItem.percentWidth = 100; 
       var btn:Button = new Button(); 
       btn.label = "BUTTON"; 
       btn.percentWidth = 100; 
       btn.percentHeight = 100; 
       gItem.addChild(btn); 
       gRow.addChild(gItem); 
       mainGrid.addChild(gRow); 
      }  
     }   
    ]]> 
</mx:Script> 

<mx:HBox width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="on" id="main" clipContent = "true"> 
    <mx:Grid id="mainGrid" width="100%" height="100%" /> 
</mx:HBox> 
</mx:Application> 

Répondre

2

il semble donc que je réussi à mentionner la réponse éventuelle dans mon question. C'est les gens de la propriété "minHeight", on dirait qu'il est réglé à la hauteur des grilles contenues, et ne rétrécira pas plus petit. Réglez-le à 0, et votre bien à faire.

J'espère que ce dialogue que j'ai avec moi-même aide quelqu'un sinon. :)

+0

+1 Vous avez répondu à votre propre question. Deux autres votes et vous obtiendrez un badge d'auto-apprenant :) – Amarghosh

0

vous pouvez essayer de donner la heigh du HBox, comme height = « {hb.height} », hb comme id

+0

Je pourrais certainement régler HBox pour refléter la hauteur de la scène, mais la raison pour laquelle j'utilise Flex est parce que le gestionnaire de mise en page est censé gérer cela. J'ai l'impression de manquer un décor quelque part. – Whit