gpt4 book ai didi

apache-flex - 强制所有项目渲染器提交commitProperties?

转载 作者:行者123 更新时间:2023-12-02 04:17:02 25 4
gpt4 key购买 nike

我有一个项目渲染器,用于检查外部源的显示信息。如果该信息发生更改,我想强制所有项目渲染器实例进行检查。

强制列表或网格中的所有项目渲染器执行commitProperties或执行其他方法的最佳方法是什么?

  • 我读过重置grid.itemRenderer属性将使
    他们都初始化。
  • 我也收到了建议
    递归遍历所有
    网格的子代并调用invalidateProperties在我找到的所有UIComponent上。

  • 有什么想法吗?备择方案?

    最佳答案

    请记住,在Flex列表中,您正在处理虚拟化和itemRenderer回收,因此通常仅实际存在当前可见的itemRenderer,因此实际上是需要更新的项目。

    以下适用于基于Spark列表的控件:

    for ( var i:int=0; i< sparkList.dataGroup.numElements; i++ )
    {
    var element:UIComponent = sparkList.dataGroup.getElementAt( i ) as UIComponent;
    if ( element )
    element.invalidateProperties();
    else
    trace("element " + i.toString() + " wasn't there");

    }

    如果您有100个项目,这将更新10个可见项目并忽略虚拟休息。

    如果您使用的是mx DataGrid,则可能要尝试这种方法的变体-但它不使用DataGroup / Spark虚拟化,因此我没有办法为您解决所有问题。

    附言我正在对完全基于Spark的DataGrid进行画龙点睛,完成后我将发布链接。

    关于apache-flex - 强制所有项目渲染器提交commitProperties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2390637/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com