Custom DataGrid headerRenderer based on Canvas
I ran into a problem that I'm still not sure what was happening today. I had something like this:
public class MyHeader extends Canvas
{
...
}
...
myDataGridColumn.headerRenderer = new ClassFactory( MyHeader );
It worked, but upon mouse over or mouse move it would flicker like crazy. Extending Label or Button works no problem. I tried implementing various interfaces like IDataRenderer, IDropInListItemRenderer, and IListItemRenderer but still had the same results.
A quick fix I found was to intercept and cancel those mouse events in my header class.
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, true );
addEventListener(MouseEvent.MOUSE_MOVE, onMouseOver, true );
...
protected function onMouseOver(event:MouseEvent) : void
{
event.preventDefault();
}
Now everything seems to work fine. But I'm still at a loss on why this happened in the first place and I worry my hack of a fix is the wrong way to do it. Has anyone successfully gotten a custom header renderer based on a container working?
public class MyHeader extends Canvas
{
...
}
...
myDataGridColumn.headerRenderer = new ClassFactory( MyHeader );
It worked, but upon mouse over or mouse move it would flicker like crazy. Extending Label or Button works no problem. I tried implementing various interfaces like IDataRenderer, IDropInListItemRenderer, and IListItemRenderer but still had the same results.
A quick fix I found was to intercept and cancel those mouse events in my header class.
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, true );
addEventListener(MouseEvent.MOUSE_MOVE, onMouseOver, true );
...
protected function onMouseOver(event:MouseEvent) : void
{
event.preventDefault();
}
Now everything seems to work fine. But I'm still at a loss on why this happened in the first place and I worry my hack of a fix is the wrong way to do it. Has anyone successfully gotten a custom header renderer based on a container working?
Labels: flex
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home