2010-10-29 7 views
1

Je souhaite afficher du texte enrichi dans le menu déroulant, pour lequel j'utilise le moteur de rendu suivant.Problème Flex Itemrenderer avec le contrôle DropDown

<?xml version="1.0" encoding="utf-8"?> 
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx"> 
    <fx:Script> 
    <![CDATA[ 
    import spark.utils.TextFlowUtil; 
    ]]> 
    </fx:Script> 
    <s:TextArea textFlow="{TextFlowUtil.importFromXML(new XML(data))}"/> 
</mx:HBox> 

Le texte montre renderer html correctement dans la liste déroulante, mais dans la partie supérieure option la plus (élément sélectionné) toute balise HTML est affiché à la place de ce que l'étiquette représente. Je suis complètement perdu toute aide sera appréciée.

Merci

Répondre

0

Quel contrôle utilisez-vous? Un contrôle MX ComboBox ou un contrôle Spark DropDownList? Ou un Spark ComboBox?

Puisque votre itemRenderer mélange les composants Halo et Spark, c'est difficile à dire.

Dans MX ComboBox, vous ne pouvez pas contrôler la zone d'invite avec votre élémentRenderer. Ce doit être du texte brut.

Dans le Spark ComboBox, la zone d'invite est une entrée réelle dans laquelle vous tapez. Ss tel n'affichera pas HTMLText.

Je soupçonne que le contrôle Spark DropDownList a les mêmes limitations que le MX ComboBox, où l'invite n'est pas créée avec votre itemRenderer.

Dans tous les cas, vous devrez étendre le composant si vous voulez faire quelque chose d'autre. Cela dit, votre itemRenderer ne doit pas mélanger les composants Halo et Spark. La HBox est superflue avec seulement un objet. Alors, débarrassez-vous de cela et remplacez-le par le Spark ItemRenderer. Au lieu de lier votre valeur, utilisez l'événement dataChange. Ces deux choses sont connues pour augmenter les performances.

More info about creating Spark Renderers.

+0

Merci pour la pointe, je ne fait changer le générateur de susciter renderer mais la question reste, je pense que vous avez raison que la zone rapide ne reçoit pas rendu par le itemRenderer mais avec un simple contrôle TextInput. L'extension du contrôle semble être la seule solution. – Arslan

+0

Le lien suivant m'a aidé à étendre le combobox http://stackoverflow.com/questions/269773/flex-custom-item-renderer-for-the-displayed-item-in-the-combobox/280859#280859 – Arslan

Questions connexes