public function getItemRenderer(list:List, item:Object):ItemRenderer
{
var dataGroup:DataGroup = list.dataGroup;
var n:int = dataGroup.numElements;
for (var i:int = 0; i < n; i++)
{
var renderer:ItemRenderer = dataGroup.getElementAt(i) as ItemRenderer;
if (renderer && renderer.data == item)
return renderer;
}
return null;
}
4条答案
按热度按时间piwo6bdm1#
wribegjk2#
通过使用此方法,您无法获得可视区域之外的渲染器,并且还会出现许多其他问题。
oknwwptz3#
如果需要更改项呈示器的行为方式,请更改导致该行为的数据。
这是一个简单的例子,我把项目标记为可删除,渲染器也随之改变,因为数据已经改变了。对于较大的数据集,我知道这可能有点慢,但它给了你你想要的控制。
如果需要更改一个渲染器,只需修改dataProvider或dataGroup中相应对象上的数据。
e5nqia274#
我知道这是一个老线索,但也许它会帮助一些人:
这将给予你一个ItemRenderer,如果你有一个自定义的IR,那么就使用那个类和转换以及你的设置。