从Flex 4(spark)ItemRenderer中删除默认样式

时间:2011-09-19 22:10:09

标签: flex styling itemrenderer flex-spark

我正在尝试制作一个水平的标签列表,它们之间有一个空格(用作自动收报机磁带的一部分)。

列表外的标签具有透明背景,但作为ItemRenderer或List的一部分,它们会获得白色背景。我的假设是,这是应用于Spark ItemRenderer的默认样式的一部分。

问题 - 有没有办法完全摆脱应用于ItemRenderer的所有默认视觉样式?

protected var messages:ArrayCollection = new ArrayCollection( new Array("1", "2", "3", "etc") );

<s:List dataProvider="{messages}" itemRenderer="SimpleTextRenderer">
    <s:layout >
        <s:HorizontalLayout verticalAlign="middle" />
    </s:layout>
</s:List>

SimpleTextRenderer:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" 
            xmlns:mx="library://ns.adobe.com/flex/mx" 
            autoDrawBackground="false" contentBackgroundAlpha="0" >

    <s:Label text="{data}" />   

</s:ItemRenderer>

1 个答案:

答案 0 :(得分:1)

您可以实现自己的自定义项呈示器,例如扩展UIComponent(或Label)并实现 IItemRenderer 。它实际上非常简单,正如here所解释的那样(你不需要实现两个给定的接口,因为一个实现了另一个接口)。

这将允许您摆脱样式和内容,因为您将精确管理组件在其验证周期中的呈现方式。