列表组件 - 更改单元格之间的间隙大小

时间:2013-03-25 06:00:42

标签: actionscript-3 flash

我想增加列表中单元格之间的间隙大小,这样它们就不会相互叠加。我知道有m_list.setStyle("contentPadding", 5),但只调整列表边缘的间隙,而不是单个单元格。同样调整列表中的rowHeight不会影响相邻单元格之间的间隙。我似乎找不到任何有关如何完成的资源。

提前致谢。

1 个答案:

答案 0 :(得分:1)

它不支持api。你可以创建自己的List extends fl.controls.List并使用trick with rowHeight,见下:

package 
{
    import fl.controls.List;
    import fl.controls.listClasses.CellRenderer;

    public class MyList extends List
    {

        public var gap:Number = 5;

        public function MyList()
        {
            super();

            rowHeight +=  gap;
        }

        override protected function draw():void
        {
            super.draw();
            updateRenderer();
        }

        protected function updateRenderer():void
        {
            var renderers:Array = availableCellRenderers.concat(activeCellRenderers);
            var l:uint = renderers.length;

            for (var i:uint=0; i<l; i++)
            {
                var renderer:CellRenderer = renderers[i];

                if (i > 0)
                {
                    renderer.y +=  gap;
                }

                renderer.setSize(availableWidth+_maxHorizontalScrollPosition,rowHeight - gap);

                renderer.drawNow();
            }
        }
    }
}