使用DropDown Control解决Flex Itemrenderer问题

时间:2010-10-29 12:26:38

标签: flex combobox itemrenderer richtext

我想在下拉控件中显示富文本,我正在使用以下渲染器。

<?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 个答案:

答案 0 :(得分:0)

你使用什么控制? 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事件,而不是绑定您的值。众所周知,这两件事都可以提高性能。

More info about creating Spark Renderers.