通常,您的答案是使用 itemRenderer。
列表类所做的只是显示其他组件(渲染器)并将这些组件的数据从 dataProvider 发送到显示。真的,您的意思是默认 itemRenderer 不支持 HTML。从技术上讲,您可以制作一个支持 HTML 的 itemRenderer,为您提供所需的颜色更改;但我会采取不同的方式。
向用户对象添加一个属性,指定他们是否是管理员用户。然后 iF 用户是管理员用户;然后; 改变颜色。概念上是这样的:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
autoDrawBackground="false" dataChange="onDataChange()">
<fx:Script>
<![CDATA[
public function onDataChange():void{
labelDisplay.text = data.userName + "_Guest";
if(data.isAdmin){
labelDisplay.setStyle('color',0xff0000);
} else {
labelDisplay.setStyle('color',0x00FF00);
}
}
]]>
</fx:Script>
<s:Label id="labelDisplay"
/>
</s:ItemRenderer>