我正在处理FLEX / AIR Spark列表,其中列出了具有不同宽度和高度的图像集合。
我正在使用以这种方式工作的自定义布局:
根据宽度确定当前行中可以容纳的图像数量。
以这样的方式证明他们:行中的第一个图像服从"左"边缘和行中的最后一个图像服从"右边"保证金,所以" top"和"底部"根据用户的指定,我们说10像素。
作为示例,假设当前行具有4个图像,则图像1& 4将具有10个像素作为" left"保证金"权利"保证金分别。但是1-2和2-3之间的左右间隙。 3-4将根据不同的宽度进行平均分配。
现在我想绘制一个填充动态区域的背景。请参阅下面的图片以获得一个想法:
**在图像中,灰色区域是我想要绘制的背景,彩色矩形代表不同宽度和高度的图像。**
的问题:
a)现在我想绘制一个填充列表背景区域的背景(参见图中的灰色区域)。我知道当前项目的宽度&高度,但我不知道rowHeight由图像之间的布局,左右边距决定。
类似的东西:
bgRect:Rectangle = new rectangle ( 0, 0, (imgWidth + (LeftMargin/2) + (Right Margin/2) ), rowHeight)
b)如何/在何处实施背景?如果我根据布局在项目渲染器中添加BG区域,则布局将再次进行中继。
答案 0 :(得分:0)
应该在createChildren方法中添加子项。绘制(绘画)背景应该在updateDisplayList方法中进行。
答案 1 :(得分:0)
您可以通过itemrenderer工厂将数据传递给itemrenderer。见 - Flex - Sending a parameter to a custom ItemRenderer?。
var productRenderer:ClassFactory = new ClassFactory(ProductRenderer); productRenderer.properties = {showProductImage:true}; myList.itemRenderer = productRenderer;