2011-06-17 1 views
0

J'ai une liste avec des moteurs de rendu personnalisés. Ce que je voudrais, c'est que l'un des éléments de la liste soit sélectionné pour positionner un autre contrôle à l'extérieur de la liste à la même position verticale que l'élément sélectionné. Pensées?liste d'étincelles élément sélectionné coordonnées

Répondre

1

Utilisez l'événement itemClick pour obtenir une référence à itemRenderer sur lequel vous avez cliqué; et à partir de là, vous pouvez obtenir les propriétés X et Y.

Dans une liste Spark, vous pouvez probablement faire quelque chose en utilisant l'événement click, bien que la propriété itemRenderer soit explicitement exposée; mais je pense que la propriété target peut vous donner un hook à itemRenderer.

Si tout le reste échoue, vous pourriez avoir votre itemRenderer personnalisé envoyer son propre événement qui inclut les positions globales X et Y.

+0

Jusqu'à ce que l'instance renderer est recyclé ... Vous devrez suivre l'exemple du moteur de rendu par l'élément de données par affecter quelque chose comme data.render = this, et suivre toute modification de list.selectedItem.renderer. De cette façon, vous disposez toujours d'une référence à jour à l'instance de rendu en cours si elle change (ce qu'elle a l'habitude de faire de façon inattendue). – drkstr

+0

@drkstr J'ai compris à partir du post original que @FuzzyBear voulait une référence à itemRenderer quand il est sélectionné. Il est peu probable que le moteur de rendu recycle entre la sélection et le déclenchement du gestionnaire d'événements. Cependant, si vous avez besoin de coordonner les mises en page, alors oui, il devra faire quelque chose sur la liste déroulante pour déplacer ses "autres objets". – JeffryHouser

+0

@Flextras Ouais bon point. Très probablement, le cas d'utilisation n'impliquerait pas de mise en page virtuelle ou de défilement, ce qui déclencherait le processus de recyclage. Je pensais plus à quelque chose qui devait rester aligné sur l'élément sélectionné car il se déplace dans une liste déroulante. Même encore, je me méfierais en cassant la règle d'or des moteurs de rendu d'élément: "Bien ne doit pas compter sur l'instance d'un moteur de rendu d'élément". Mais vous avez raison, il ne devrait pas y avoir de problème si le contrôle n'a pas besoin d'être "lié" à l'emplacement du moteur de rendu. – drkstr

Questions connexes