flex4 List 渲染
http://blog.csdn.net/sevennhe/article/details/6123361
代码算是基本完成了,但是想想...,如果其它页面也有需要列出类似这种List,是不是需要复制上面的自定义的渲染器那段代码。所以,应该考虑代码重用的问题,把自定义的渲染器做成一个自定义的组件,新建一个基于 spark.components.supportClasses.ItemRenderer 的mxml组件文件ListItemRenderer.mxml,把代码:
view plain- <s:layout>??????????<s:VerticalLayout?horizontalAlign="center"???
- ??????????????????????????verticalAlign="middle"/>??</s:layout>??
- <s:Label?text="{data.name}"?maxWidth="100"/>??<mx:Image?source="{data.image}"?width="100"?height="100"/>??
从List.mxml文件里面剪切到新建的ListItemRenderer.mxml文件,
view plain- <?xml?version="1.0"?encoding="utf-8"?>??<s:ItemRenderer?xmlns:fx="http://ns.adobe.com/mxml/2009"???
- ????????????????xmlns:s="library://ns.adobe.com/flex/spark"???????????????????xmlns:mx="library://ns.adobe.com/flex/mx">??
- ????<fx:Declarations>??????????<!--?将非可视元素(例如服务、值对象)放在此处?-->??
- ????</fx:Declarations>??????<s:layout>??
- ????????<s:VerticalLayout?horizontalAlign="center"?????????????????????????????verticalAlign="middle"/>??
- ????</s:layout>??????<s:Label?text="{data.name}"?maxWidth="100"/>??
- ????<mx:Image?source="{data.image}"?width="100"?height="100"/>??</s:ItemRenderer>??
修改List.mxml文件里的List控件代码如下:
view plain- <s:List?dataProvider="{datas}"??????????height="400"??
- ????????itemRenderer="components.ListItemRenderer">??????<s:layout>??
- ????????<s:VerticalLayout?paddingBottom="10"?????????????????????????????paddingLeft="10"???
- ??????????????????????????paddingRight="10"????????????????????????????paddingTop="10"/>??
- ????</s:layout>??</s:List>??
设置List 的属性 itemRenderer 等于自定义的渲染器,执行List.mxml文件,显示结果和之前的一样。 = =!
?