Flex dataGrid itemRenderer, доступ к ширине и высоте ячейки

При написании настраиваемого itemRenderer, как вы указываете высоту и ширину ячейки сетки, в которой он будет отображаться? Таким образом, он будет правильно изменять размер при изменении размера сетки.

Я пишу dataGrid itemRenderer, который рисует гистограмму в последнем столбце таблицы.

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


person Alex    schedule 13.11.2008    source источник


Ответы (2)


Все гибкие компоненты, включая средства визуализации ячеек, знают свою ширину и высоту, поэтому вы должны иметь доступ только к this.width и this.height.

Если вы ищете события, которые сообщают вам, что размер ячейки изменился, вы можете прослушать событие ResizeEvent.RESIZE или переопределить protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void в компоненте.

person seanalltogether    schedule 14.11.2008
comment
Я пробовал это, но this.width всегда равен 0. Я подозреваю, что это результат того, что он еще не был отрисован, поскольку это HBox с (предположительно) 100% шириной. - person Alex; 14.11.2008
comment
Большое спасибо, Шон. Мне даже в голову не пришло перезаписать updateDisplayList. +1 - person Ross Henderson; 23.02.2010

Ваш itemRenderer для последнего столбца наследует размер макета. Используйте абсолютный макет для MXML itemRenderer, и он будет масштабироваться по размеру.

person Jack Viers    schedule 15.04.2011