2010-08-30 6 views
0

Je suis sûr que ma disposition dynamique mxml doit me donner deux barres de défilement (horizontal et vertical) mais elle ne montre qu'une verticale. Ai-je raté quelque chose ou est-ce un bug?Le composant Flex 4 Scroller ne restitue pas la barre de défilement horizontale

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" xmlns:local="*"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 

      [Bindable] 
      public var myData:ArrayCollection = new ArrayCollection([ 
       {name:"Jane"}, 
       {name:"Sonny"}, 
       {name:"Alicia"} 
      ]); 
     ]]> 
    </fx:Script> 
    <s:Scroller width="100%" height="100%"> 
     <s:VGroup> 
      <s:Group minHeight="600" minWidth="800" height="100%" width="100%"> 
       <mx:HDividedBox id="div1" width="100%" height="100%" autoLayout="true" liveDragging="true"> 
        <mx:DataGrid width="100%" height="100%" dataProvider="{myData}"/> 
        <mx:DataGrid width="100%" height="100%" dataProvider="{myData}"/> 
       </mx:HDividedBox> 
      </s:Group> 
     </s:VGroup> 
    </s:Scroller> 
</s:Application> 

Répondre

2

Retirez le VGroup intérieur du Scroller ou changer au groupe! Il semble que la barre de défilement horizontale ne s'affiche pas lorsque vous utilisez VGroup comme premier enfant

+0

Changer VGroup pour le groupe fonctionne en effet! Merci. Btw cela ressemble à un bug Flex SDK pour moi. – Nek

-3

Vous n'avez pas défini horizontalScrollPolicy et verticalScrollPolicy pour la Scroller et donc ils ont leur valeur fixée à la auto. Le comportement dans ce cas est d'afficher les barres de défilement uniquement si nécessaire.

Les barres de défilement s'affichent en fonction de vertical and horizontal scroll bar policy, qui peut être activée, désactivée ou activée. La règle automatique signifie que la barre de défilement sera visible et incluse dans la mise en page lorsque le contenu de la fenêtre est plus grand que la fenêtre elle-même.

Essayez avec

<s:Scroller width="100%" height="100%" horizontalScrollPolicy="on"> 
+0

L'avez-vous essayé? Cela fera apparaître le composant de barre de défilement horizontal, mais il sera désactivé pour toujours, quelle que soit la taille de la fenêtre de l'application et je dois le faire fonctionner lorsque la largeur de la fenêtre est inférieure à la largeur du contenu. Jusqu'à présent, tout fonctionne bien pour minHeight mais la même logique casse sur la barre de défilement horizontale. Vous pouvez facilement le vérifier en collant mon code dans un projet Flex vide et en le compilant. – Nek

Questions connexes