如何在自定义渲染器上获得showDataTips的效果?

时间:2012-12-02 11:42:35

标签: actionscript-3 flex flex3 itemrenderer

我有一个AdvancedDataGrid在其中一列上有自定义渲染器(扩展AdvancedDataGridItemRenderer)。我有兴趣在列中显示全文作为工具提示,因为它的内容太短。使用标准渲染器,我可以使用showDataTips轻松实现此效果,但它不适用于自定义渲染器。我尝试测量文本宽度并将其与列宽以几种方式进行比较,但我得到的值不正确,到目前为止没有任何效果。这是一个例子:

public override function set data(value:Object):void
{
    super.data=value;
    var metrics:TextLineMetrics=getLineMetrics(0);
    if (metrics.width>this.width) toolTip=text; else toolTip="";
}

如果有人知道这个问题的解决方案,我会很高兴他/她可以分享。

2 个答案:

答案 0 :(得分:0)

试试这个

public override function set data(value:Object):void
{
    super.data=value;
    var metrics:TextLineMetrics=measureText(text);
    if (metrics.width>this.width) toolTip=text; else toolTip="";
}

答案 1 :(得分:0)

我实际上已经解决了它。如果其他人遇到同样的问题,这就是解决方案:

public override function validateSize(recursive:Boolean=false):void
{
    super.validateSize(recursive);
    if ((AdvancedDataGrid(listData.owner).columns[listData.columnIndex].
            showDataTips)&&(textWidth>width))
        toolTip=listData.label;
    else toolTip=null;
}