繁体   English   中英

Flex中的ItemRenderer与Repeater

[英]ItemRenderer vs Repeater in Flex

你们谁都知道ItemRenderer和Repeater之间的区别。 两者的行为几乎相同。 有什么区别吗?

你们谁都知道ItemRenderer和Repeater之间的区别。 两者的行为几乎相同。 有什么区别吗?

我不确定它们如何表现相同,但是如果看不到您的代码,就很难判断。 我将尝试解释差异。 更确切地说; 每个是什么。

在后台,itemRenderer是ClassFactory 工厂是用于创建其他类的类的设计模式。 在Flex的上下文中,itemRenderers用于基于列表的类,例如DataGrid或List。 基于列表的类接受一个dataProvider,并且仅呈现在屏幕上看到的元素。 在列表中滚动时,itemRenderer生成的每个组件都会被重用。 我将此渲染器称为回收。 因此,重要的是要实现itemRenderer以响应dataChange事件,以便它始终正确呈现应该表示的数据。 有关itemRenderer组件的更多信息。

中继器就像MXML中的循环。 使用转发器不会提供基于列表的类提供的任何“渲染器”好处。 循环中创建的所有内容都将立即渲染。

因此,假设您有一个包含100张图片的dataProvider。 您有空间在屏幕上显示其中的10个。 对于基于列表的类,flex将渲染并加载10张图像; 滚动列表时更改加载的内容。 使用Repeater Flex可以一次渲染并加载所有100个,即使不是所有这些都在屏幕上。

最大的区别是:Repeater已被 弃用,已 停产。 仅在Flex 3中作为mx组件存在,而在Flex 4中没有等效的Spark。建议您改用DataGroup + ItemRenderer。 在@ www.Flextras.com的答案中非常清楚地解释了这样做的主要原因。

除此之外,除了最基本的用途之外,IMO对于中继器来说可能是一个严重的痛苦。 它的范例与所有其他Flex组件完全不同 ,而DataGroup + ItemRenderer方法与Flex组件集非常一致。

底线: 请勿使用Repeater 与Repeater相比,您无能为力,而对DataGroup + ItemRenderer则无能为力。 (除非您出于某种原因而无法使用Flex3。有关更多信息,请参阅Amy的评论。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM