Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-34196

Flex mobile prevent item renderer state from recycled

    XMLWordPrintableJSON

Details

    Description

      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...

      Attachments

        1. ItemRendererTest.fxp
          14 kB
          victor yew

        Activity

          People

            Unassigned Unassigned
            victoryew99 victor yew
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 1h
                1h
                Remaining:
                Remaining Estimate - 1h
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified