Domanda

Ho un componente List utilizzando più renderer voce determinati dal itemRendererFunction. Quando ho creato i dati per la prima volta, funziona come previsto. Poi, quando ho impostato i dati una seconda volta con i nuovi dati, che non chiama l'itemRendererFunction e cerca di riutilizzare i renderer attuali, anche se non corrispondono i dati. Una volta ho scorrere, la funzione viene chiamata ei renderer corrette vengono utilizzati. Ho provato a chiamare invalidateDisplayList e tale prima di impostare i dati, ma che non risolvere il problema. Tutte le idee?

È stato utile?

Soluzione

Si scopre che questo è un bug Flex SDK. Peter DeHaan mi ha fornito una soluzione (ri-impostare la proprietà itemRendererFunction dopo dataProvider è impostata) ed è il deposito per un futuro rilascio del SDK.

Altri suggerimenti

Ecco solo alcune idee:

Prova invalidateProperties? Guardando la fonte ho la sensazione potrebbe essere che, altrimenti, forse basta iniziare chiamando ogni metodo invalidate si possono trovare fino ad ottenere quella giusta.

Un'altra soluzione sorta hacky potrebbe essere quella di prendere non di posizione di scorrimento corrente (tramite lo scroller nell'Elenco) passano in un nuovo array come dataprovider (che sicuramente ricreare gli item renderers) quindi impostare la posizione di scorrimento allo stesso come era prima l'aggiornamento.

Oppure si potrebbe astratta la selezione delle diverse oggetto renderer nella voce renderer stesso. : /

FWIW: Ecco il link al bug Flex: https://bugs.adobe.com/jira/browse/SDK-32018

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top