2010-07-23 2 views
0

Avec le TreeItemrenderer par défaut, il est possible d'activer le retour automatique à la ligne en fonction de la largeur de l'arbre en définissant wordWrap=true et variableRowHeight="true" dans le contrôle d'arbre.Problème de hauteur avec retour automatique de mot dans MXTreeItemRenderer dans un arbre flexible

Je voudrais activer ce comportement dans un MXTreeItemRenderer (un wrapper pour utiliser des composants spark comme mx itemrenderer). J'ai utilisé MXTreeItemRenderer créé par Flexbuilder et ajouté une largeur de 100% au composant label (voir le code ci-dessous).

Le retour à la ligne fonctionne maintenant, mais dans de nombreux cas, le calcul de la hauteur du rendu d'élément est incorrect lorsqu'il y a des sauts de ligne. Il semble fonctionner avec une largeur fixe.

Une idée de comment l'obtenir?

<s:MXTreeItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <s:states> 
     <s:State name="normal" />    
     <s:State name="hovered" /> 
     <s:State name="selected" /> 
    </s:states> 
    <s:HGroup left="0" right="0" top="0" bottom="0" verticalAlign="middle"> 
     <s:Rect id="indentationSpacer" width="{treeListData.indent}" percentHeight="100" alpha="0"> 
      <s:fill> 
       <s:SolidColor color="0xFFFFFF" /> 
      </s:fill> 
     </s:Rect> 
     <s:Group id="disclosureGroup"> 
      <s:BitmapImage source="{treeListData.disclosureIcon}" visible="{treeListData.hasChildren}" /> 
     </s:Group> 
     <s:BitmapImage source="{treeListData.icon}" /> 
     <s:Label id="labelField" text="{treeListData.label}" paddingTop="2" width="100%"/> 
    </s:HGroup> 
</s:MXTreeItemRenderer> 

Répondre

0

Eh bien, vous devriez probablement déposer un bogue d'abord;)

Si ce n'est pas correctement la hauteur de rapports, passer outre la mesure (..) méthode et travailler la hauteur vous, vous aurez probablement pour utiliser les métriques de ligne (si elles sont encore dans Spark) pour le résoudre.

+0

Merci, je vais examiner cela. – baumratte

0

J'ai découvert que la hauteur est calculée correctement quand elle est faite deux fois. Donc, comme une solution de contournement pour l'instant j'écoute les changements de données et la taille et appelez la invalidateList() Méthode de l'arbre sur un changement.

0

Dans ce site de blog, quelqu'un m'a fait ce vraiment sympa un site

, il m'a aidé. Je pense que cela fonctionne pour varier la hauteur des rangées. Les nœuds avec le texte d'emballage devraient fonctionner.

Profitez-en!

Questions connexes