2008-11-13 10 views
3

Lors de l'écriture d'un élémentRenderer personnalisé, comment faites-vous référence à la hauteur et à la largeur de la cellule de la grille dans laquelle il sera rendu? De telle sorte qu'il sera redimensionné correctement lorsque la grille est redimensionnée.Flex dataGrid itemRenderer, largeur et hauteur des cellules d'accès

J'écris un itemRenderer de dataGrid qui dessine un graphique à barres dans la dernière colonne d'une table.

J'ai essayé de référencer 'this', 'this.parent' et quelques autres choses sans succès. Ma solution de piratage intérimaire consiste à ajouter ces données à la collection de données, mais cela ne fonctionnera pas lorsque la grille changera de taille, donc je devrai l'éditer à chaque fois.

Répondre

5

Tous les composants Flex y compris les équarrisseurs cellulaires sont conscients de leurs propres largeurs et hauteurs, de sorte que vous devriez être en mesure d'accéder simplement this.largeur et this.hauteur

Si vous êtes à la recherche d'événements qui vous indiquent lorsqu'un cellule a redimensionné vous pouvez écouter l'événement ResizeEvent.RESIZE ou remplacer protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void sur le composant.

+0

J'ai essayé cela, mais this.width est toujours 0. Je suppose que c'est parce qu'il n'a pas encore été rendu, car il s'agit d'un HBox avec (vraisemblablement) 100% de largeur. – Alex

+0

Merci beaucoup, Sean. Je n'ai même jamais pensé à remplacer le updateDisplayList. +1 –

0

Votre itemRenderer pour la dernière colonne hérite de la taille de la mise en page. Utilisez une mise en page absolue pour le composant MXML itemRenderer et elle s'adaptera à l'échelle.

Questions connexes