Скажите, у меня есть 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 чередующиеся строки очень неприятно альтернативные :) независимо от того, является ли строка расширяемым узлом или строкой данных. Строка, расположенная непосредственно под любой расширяемой строкой, может быть любого цвета, и расширяемая строка также получает цвет. Я предпочитаю чередование светло-темных, чтобы пропустить расширяемые строки и перезапустить последовательность светло-темных после каждого ряда, но полностью пропустить расширяемый ряд.
Я сделал так, чтобы groupItemRenderer занял много отображаемых столбцов и выделил ему серый фон, но цвет строки по-прежнему отображается за средством визуализации элементов, даже если высота рендера установлена на 100%.
Если я не потерял всех на этом этапе, есть ли у кого-нибудь идеи о том, как это сделать? Нужно ли расширять AdvancedDataGrid и переопределять метод drawRowBackgrounds, или есть более простое решение?