You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "victor yew (JIRA)" <ji...@apache.org> on 2014/04/01 05:52:17 UTC

[jira] [Created] (FLEX-34196) Flex mobile prevent item renderer state from recycled

victor yew created FLEX-34196:
---------------------------------

             Summary: Flex mobile prevent item renderer state from recycled
                 Key: FLEX-34196
                 URL: https://issues.apache.org/jira/browse/FLEX-34196
             Project: Apache Flex
          Issue Type: Bug
          Components: Spark: DataGroup
    Affects Versions: Apache Flex 4.11.0
         Environment: Window 7 64bit, Flash Builder 4.6
            Reporter: victor yew


I have this custom list item renderer where I have defined 2 custom states:

<s:states>
    <s:State name="expand"/>
    <s:State name="collapse"/>
</s:states>

When I select one of the list item, it will change to state collapse. Now whenever I select the first or the last item in the list and I refresh the data provider, the current state of both the items will swap places.

Please guide me on how to retain the state of the itemrenderer. Thank you.

Note: It all works well when I change the usevirtuallayout to false. But, it is not what I intended to change.

[Edit] The following is my code for the item renderer:

<fx:Script>
    <![CDATA[

protected function init(event):void
{
    currentState = "collapse";
}

override public function set data(value:Object):void 
{
    trace(currentState.toString());
}

protected function btn_clickHandler(event:MouseEvent):void
{
    currentState = "expand";
}

]]>
</fx:Script>

<s:states>
    <s:State name="expand"/>
    <s:State name="collapse"/>
</s:states>

<s:Button id="changeStateButton" click="btn_clickHandler(event)"/>

The example above is a simple item renderer where a single button will change the currentState of the itemrenderer. I have 3 items in the data provider and each one of them is in the "collapse" state by default. This is the trace result from the set data function:

collapse
collapse
collapse

When I click the button at the last item... this will be the trace result:

collapse
collapse
expand

Now, when I refresh the data provider by calling this function "arraycollection.refresh()"...this is the result:

expand
collapse
collapse

Can somebody explain this scenario? Notice that this only happens when the useVirtualLayout is set to true...



--
This message was sent by Atlassian JIRA
(v6.2#6252)