我正在尝试制作一个水平的标签列表,它们之间有一个空格(用作自动收报机磁带的一部分)。
列表外的标签具有透明背景,但作为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>
答案 0 :(得分:1)
您可以实现自己的自定义项呈示器,例如扩展UIComponent(或Label)并实现 IItemRenderer 。它实际上非常简单,正如here所解释的那样(你不需要实现两个给定的接口,因为一个实现了另一个接口)。
这将允许您摆脱样式和内容,因为您将精确管理组件在其验证周期中的呈现方式。