flex4 DataGrid 设置行颜色如何重写drawRowBackground方法

flex4DataGrid设置行颜色如何重写drawRowBackground方法,写在哪... flex4 DataGrid 设置行颜色如何重写drawRowBackground方法,写在哪 展开
 我来答
圣斗士小强
推荐于2016-04-26 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:75.9万
展开全部

只说一下思路吧:

  1. 你必须重写DataGrid的drawRowBackground方法,例如你可以写个AS类文件,继承自DataGrid:

public class MyDataGrid extends DataGrid
    {
        public function MyDataGrid()
        {
            super();
        }
        override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{
            //此处为你自定义的代码
            //super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);
        }
    }

2.然后参考一下DataGrid中drawRowBackground()方法是如何实现的(给你列一下源码中的内容):

 protected function drawRowBackground(s:Sprite, rowIndex:int,
                                            y:Number, height:Number, color:uint, dataIndex:int):void
    {
        var contentHolder:ListBaseContentHolder = ListBaseContentHolder(s.parent);

        var background:Shape;
        if (rowIndex < s.numChildren)
        {
            background = Shape(s.getChildAt(rowIndex));
        }
        else
        {
            background = new FlexShape();
            background.name = "background";
            s.addChild(background);
        }

        background.y = y;

        // Height is usually as tall is the items in the row, but not if
        // it would extend below the bottom of listContent
        var height:Number = Math.min(height,
                                     contentHolder.height -
                                     y);

        var g:Graphics = background.graphics;
        g.clear();
        g.beginFill(color, getStyle("backgroundAlpha"));
        g.drawRect(0, 0, contentHolder.width, height);
        g.endFill();
    }

 3.然后根据源码中的内容和你想要的业务逻辑,进行修改即可

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式