Ho una GridView di layout che possono essere aggiunti o rimossi dinamicamente alla griglia.Android: animazione delle modifiche al contenuto GridView
In iOS, il comportamento nativo per gli elementi di GridView è che gli altri elementi della griglia scorrano verso il punto dell'elemento rimosso o si spostino per fare spazio quando viene aggiunto un nuovo elemento.
Tuttavia su Android il comportamento è solo per le modifiche all'app istantaneamente sullo schermo. Ho provato ad aggiungere animazioni personalizzate per ogni chiamata GetView() utilizzando alcuni trucchi in adattatore di GridView, ma che ha finito per causare alcuni problemi visto qui:
Android GridView loading the 0 indexed item in a later index's slot when data set changes
ho provato avendo le singole viste controllare l'animazione al posto del metodo getView() dell'adattatore, ma il risultato finale era identico.
Ho anche provato ad utilizzare un GridLayoutAnimationController, come questo:
Animation animation = AnimationUtils.loadAnimation(mActivity, R.anim.grid_item_fadein);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);
Questo funziona sul carico iniziale di tutti i contenuti GridView, ma eventuali modifiche che il contenuto solo istantaneamente pop in, come invece accade per impostazione predefinita.
Mi sento come se fosse una funzionalità piuttosto semplice e ci dovrebbe essere un modo più semplice per farlo. Il meglio che ho visto dalla ricerca online è a library che anima gli elementi GridView che scambiano i posti nella griglia, ma non è quello che sto cercando (nella stessa libreria, quando rimuovi un elemento dalla griglia tramite l'eliminazione lo stesso effetto istantaneo che sto cercando di evitare si verifica).
Una risposta comune su SO ho anche visto "Guarda gli APIDemos, ci sono un sacco di esempi". Ma per quanto posso vedere, non ci sono in realtà esempi per l'animazione delle modifiche ai contenuti di GridView.
Qualsiasi aiuto è apprezzato, grazie.
Che tipo di animazioni stai cercando di aggiungere? L'aggiunta della proprietà xml "animateLayoutChanges = true" fornirà alcune animazioni fluide di base praticamente a qualsiasi vista. – klmprt
Questa è la prima cosa che ho provato e purtroppo non funziona. – JMRboosties
May, so come fermare questa animazione. –