首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AS3 DataGrid CellRenderer中获取列宽?

如何在AS3 DataGrid CellRenderer中获取列宽?
EN

Stack Overflow用户
提问于 2016-09-19 05:58:36
回答 2查看 316关注 0票数 0

我有一个列显示图片图标(S)的DataGrid。这是通过使用特殊的CellRenderer来完成的。在CellRenderer中可以找到列宽吗?this.width总是返回一个明显错误的数字(152),而不管实际的列宽是多少。我在PC和Android上都试过了。

我需要知道列宽才能使图片居中。使用静态变量将实际列宽传递给CellRenderer可能是可能的,但我想知道我是否忽略了一些明显的东西。

代码语言:javascript
复制
import fl.controls.listClasses.CellRenderer;
import flash.geom.Point;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.utils.*;   
import flash.events.*;

public class CustomImageCellRenderer extends CellRenderer 
{

    public function CustomImageCellRenderer()
    {   

        var iconClass : Class = getDefinitionByName("icon") as Class;
        var iconMC : MovieClip = new iconClass();

        trace("width=" + width); // always returns 152

        addChild(iconMC );      

    }

    override protected function drawBackground():void
    {
        var skin : Object;

        if (_listData.index % 2 == 0)
        {
            skin = CellRenderer_upSkin2;
        } else {
            skin = CellRenderer_upSkin;         
        }           

        setStyle("upSkin", skin);   
        setStyle("overSkin", skin); 
        setStyle("downSkin", skin); 

        setStyle("selectedOverSkin", skin); 
        setStyle("selectedDownSkin", skin);  
        setStyle("selectedUpSkin", skin);

        super.drawBackground();

    }   

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 21:36:58

在重写的drawBackground方法中使用this.width

代码语言:javascript
复制
override protected function drawBackground():void
{
    super.drawBackground();
    trace("width=" + this.width);
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-19 15:23:17

通常,你应该在updateDisplayList中做所有的布局工作--这是你应该得到正确尺寸的地方:

代码语言:javascript
复制
override protected function updateDisplayList(unscaledwidth:Number, unscaledHeight:Number):void
{
    super.updateDisplayList(unscaledWidth, unscaledHeight);

    icon.x = int((unscaledWidth - icon.width)/2);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39563069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档