2011-09-19 86 views
0

我試圖製作一個標籤的水平列表,並在它們之間存在一個空格(用於作爲自動收報器磁帶的一部分)。從Flex 4刪除默認樣式(spark)ItemRenderer

列表外部的標籤具有透明背景,但是作爲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

你不能真正擺脫樣式,只能取代它們。所以你最好的選擇是爲itemRenderers – JeffryHouser

+0

創建一個新的全新風格你的意思是在css中創建一個樣式並在ItemRenderer的styleName中引用它。 – Jono

+0

是的;這就是我的意思。 – JeffryHouser

回答

1

您可以實現自己的自定義項目渲染器,擴展UIComponent(或標籤),例如,實施IItemRenderer。其實很簡單,正如here所解釋的(你不需要實現兩個給定的接口,因爲一個實現了另一個接口)。

這將允許您擺脫樣式和東西,因爲您將精確地管理組件通過驗證週期呈現的方式。