Проблема Flex Itemrenderer с DropDown Control

Я хочу показать форматированный текст в раскрывающемся меню, для которого я использую следующий рендер.

<?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>

Средство визуализации правильно отображает HTML-текст в раскрывающемся списке, но в самой верхней опции (выбранный элемент) отображается весь тег HTML вместо того, что представляет тег. Я полностью потерян, любая помощь будет оценена.

Спасибо

1 ответ

Решение

Какой контроль вы используете? MX ComboBox или элемент управления Spark DropDownList? Или Spark ComboBox?

Поскольку ваш itemRenderer смешивает компоненты Halo и Spark, трудно сказать.

В MX ComboBox вы не можете управлять областью подсказок с помощью itemRenderer. Это должен быть простой текст.

В Spark ComboBox область подсказки представляет собой фактический ввод, который вы вводите. Ss такие не будет отображать HTMLText.

Я подозреваю, что элемент управления Spark DropDownList имеет те же ограничения, что и MX ComboBox, где приглашение не создается с вашим itemRenderer.

Во всех случаях вам придется расширять компонент, если вы хотите сделать что-то еще.

При этом ваш itemRenderer не должен смешивать компоненты Halo и Spark. HBox лишний, в нем только один предмет. Итак, избавьтесь от этого и замените его Spark ItemRenderer. Вместо привязки вашего значения используйте событие dataChange. Обе эти вещи, как известно, увеличивают производительность.

Подробнее о создании Spark Renderers.

Другие вопросы по тегам