使用List中的itemRenderers显示备用行颜色

时间:2011-07-19 12:13:02

标签: actionscript-3 flex flex3 itemrenderer

我有List itemRenderer来显示一些数据。无论如何我可以为备用行设置不同的样式或背景颜色吗?

我的List如下:

<mx:List id="myList" alternatingItemColors="[0xffffff, 0xe4e4e4]"
    borderStyle="none"
    width="100%" height="100%" y="25"
    dataProvider="{infoColl}"
    styleName="listRendererStyle"
    itemRenderer="InfoRenderer"/>

2 个答案:

答案 0 :(得分:1)

spark.skins.spark.DefaultItemRenderer的代码视为模式。有以下代码来获取背景颜色(请参阅updateDisplayList):

        var alternatingColors:Array = getStyle("alternatingItemColors");

        if (alternatingColors && alternatingColors.length > 0)
        {
            // translate these colors into uints
            styleManager.getColorNames(alternatingColors);

            backgroundColor = alternatingColors[itemIndex % alternatingColors.length];
        }

但是如果您使用spark.components.supportClasses.ItemRenderer作为MXML渲染器的基类,只需将autoDrawBackground属性设置为true,所有背景都将自动绘制。

或阅读the following documentation如何设置列表的alternatingItemColors样式以更改交替行的值。

答案 1 :(得分:0)

对于Flex3或MX,您可以使用alternatingItemColors样式属性来实现此目的。

<mx:List id="myList" alternatingItemColors="[0xffffff, 0xe4e4e4]"/>

对于Flex4或Spark,您可以查看@ Constantiner的答案,以进行精细/深层次的自定义。

猜猜alternatingItemColors会做什么,并确保您没有将backgroundAlpha的{​​{1}}属性设置为0或更低的值。