2010-02-09 4 views
1

itemRendererFunction에 의해 결정되는 여러 항목 렌더러를 사용하는 List 구성 요소가 있습니다. 처음 데이터를 설정할 때 예상대로 작동합니다. 그런 다음 새 데이터로 두 번째 데이터를 설정하면 itemRendererFunction을 호출하지 않고 데이터와 일치하지 않더라도 현재 렌더러를 다시 사용하려고합니다. 일단 스크롤하면 함수가 호출되고 올바른 렌더러가 사용됩니다. 데이터를 설정하기 전에 invalidateDisplayList 등의 호출을 시도했지만 문제가 해결되지 않았습니다. 어떤 아이디어?잘못된 항목 렌더러를 다시 사용하는 스파크 목록

+0

가 다른 클래스의 itemRenderers 위치 : 여기 플렉스 버그에 대한 링크가있어? 나는 같은 유형의 itemRenderers가 재사용 될 것으로 기대한다. –

답변

4

이것은 Flex SDK 버그입니다. Peter DeHaan이 해결 방법을 제공하고 (dataProvider가 설정된 후에 itemRendererFunction 속성을 다시 설정하고) SDK의 향후 릴리스를 위해 파일을 제출합니다.

+0

해당 해결 방법에 대한 링크 나 세부 정보를 제공 할 수 있습니까? 나는 내가 생각했던 비슷한 문제가 관련이 있다고 생각한다. – invertedSpear

+3

List.dataProvider 속성을 설정할 때마다 다음 작업을 수행하게됩니다. List.itemRendererFunction = myItemRendererFunction – destroytoday

+0

나를 위해 일했습니다. –

0

다음은 몇 가지 아이디어입니다.

invalidateProperties를 사용해보세요. 소스를 보면 나는 그것을 할 수있는 직감이있다. 그렇지 않으면, 아마도 당신이 올바른 것을 얻을 때까지 찾을 수있는 모든 무효화 메소드를 호출하기 시작할 것이다.

또 다른 해결 방법은 현재 스크롤 위치가 아니라 (목록의 스크롤러를 통해) 새로운 배열에서 dataprovider (항목 렌더러를 확실히 다시 작성)로 전달한 다음 스크롤 위치를 다음과 같이 설정하는 것입니다. 새로 고침 전 이었어.

다른 항목 렌더러의 선택 항목을 항목 렌더러 자체로 추상화 할 수도 있습니다. :/