【问题标题】:Show alternate row colors using itemRenderers inside a List使用 List 中的 itemRenderers 显示备用行颜色
【发布时间】:2011-10-08 11:35:20
【问题描述】:

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

我的List如下:

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

【问题讨论】:

  • 我很抱歉。在我的样式表中,我没有注意到 List 的 backgroundAlpha=0。这就是为什么 alternatingItemColors 的简单列表对我不起作用的原因。

标签: actionscript-3 apache-flex flex3 itemrenderer


【解决方案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样式来改变交替行的值。

【讨论】:

  • 我的项目渲染器是 HBox?我需要实现一些接口吗?我收到一条错误消息,提示 styleManager 未定义。我正在使用 Flex 3 进行开发。
  • 当您刚刚为您的列表设置alternatingItemColors 样式时发生了什么?
  • @Constantiner 让我们continue this discussion in chat
【解决方案2】:

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

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

对于 Flex4 或 Spark,您可以查看 @Constantiner 的答案以获得精细/深度定制。

猜测alternatingItemColors 可以,并确保您没有将ListbackgroundAlpha 属性设置为0 或更小的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2012-10-12
    相关资源
    最近更新 更多