【问题标题】:Flex AdvancedDataGrid with expandable nodes: possible to make the alternatingItemColors start fresh after each expandable node?具有可扩展节点的 Flex AdvancedDataGrid:可以在每个可扩展节点之后使交替项颜色重新开始吗?
【发布时间】:2025-12-21 06:25:17
【问题描述】:

假设我有这个 AdvancedDataGrid:

<mx:AdvancedDataGrid id="grid"
 height="384"
 width="100%"
 styleName="aStyleName"
 displayItemsExpanded="false"
 groupItemRenderer="SomeRenderer"
 draggableColumns="false"
 defaultLeafIcon="{null}"
 folderClosedIcon="{null}"
 folderOpenIcon="{null}">
 <mx:columns> 
  <!-- a bunch of AdvancedDatagridColumns -->
 </mx:columns>
</mx:AdvancedDataGrid>

它就像一棵树,即某些节点是可以折叠和展开的“集合”。

此网格的样式具有指定的交替项颜色数组。数组长度为 2,表示行在明暗之间交替。

问题是,即使使用自定义 groupItemRenderer,交替行非常令人讨厌alternate :) 无论该行是可扩展节点还是数据行。现在任何可展开行正下方的行都可以是任何一种颜色,而可展开行也可以获得颜色。我的偏好是明暗交替跳过可扩展行并在每行之后重新启动明暗序列,但完全跳过可扩展行。

我让 groupItemRenderer 占用了很多列,但显示了许多列并给它一个灰色背景,但行颜色仍然显示在项目渲染器后面,即使渲染的高度设置为 100%。

如果此时我还没有失去所有人,那么有人对如何做到这一点有任何想法吗?是否必须扩展 AdvancedDataGrid 并覆盖 drawRowBackgrounds 方法,还是有更简单的解决方案?

【问题讨论】:

    标签: apache-flex actionscript-3 mxml advanceddatagrid


    【解决方案1】:

    我的解决方案(尽管可能并不令人满意)是不使用交替行颜色。我想保持这个开放,因为它仍然没有完成我想做的事情,但是有人用他自己的问题回答了这个问题,而不是回答我的问题,从而降低了我的接受率。如果有人给出了一个好的答案,我将取消选中此回复并检查那个回复。抱歉,我不知道还能在这里做什么。

    【讨论】: