Flex 4.5 DataGroup 和 SkinnableDataContainer
这两个容器可容纳任何继承自DisplayObject并实现IVisualElement接口的子项,但主要用于容纳数据项子项,数据项可以是简单的字符串,数字等对象,也可以是复杂的对象,如Object和XMLNode?。
?
两个容器的主要区别:
SkinnableDataContainer可以使用皮肤,DataGroup则不能,但性能更好。DataGroup通过作为Scroller的子项来实现滚动条支持,?SkinnableDataContainer则在皮肤中实现。DataGroup的默认布局为BasicLayout,SkinnableDataContainer的默认布局为VerticalLayout。itemRenderer属性,以便在当前文档内重用。
使用AS创建item renderer
有以下方法用于创建AS item render:创建现有item renderer的子类,比如spark.components.LabelItemRenderer,spark.components.IconItemRenderer,或者spark.components.supportClasses.ItemRenderer。使用spark.components.LabelItemRenderer可以获得最高的性能。在子类中可以控制背景显示和数据项的布局。如果想使用Flex的内建布局机制,且不是很在意性能,就创建spark.components.supportClasses.ItemRenderer的子类。创建mx.core.UIComponent的子类。可以获得最好的性能,需要实现mx.core.IDataRenderer和spark.components.IItemRenderer接口。
实现一个item renderer需要覆盖必要的方法,和调用必要的invalidation方法,具体取决于继承的父类。