Flex AdvancedDataGrid с расширяемыми узлами: возможно ли заставить alternatingItemColors запускаться заново после каждого расширяемого узла? - PullRequest
0 голосов
/ 08 марта 2010

Скажите, у меня есть 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, или есть более простое решение?

1 Ответ

0 голосов
/ 30 марта 2010

Мое решение, каким бы неудовлетворительным оно ни было, состоит в том, чтобы не использовать чередующиеся цвета строк. Я хотел бы оставить это открытым, потому что это все еще не выполняет то, что я хочу сделать, но кто-то ответил на этот вопрос своим собственным вопросом, а не ответом на мой вопрос, тем самым снижая мою скорость принятия. Если кто-то придет с хорошим ответом, я сниму этот ответ и проверю его. Извините, но я не уверен, что еще здесь делать.

...