Si prega di guardare questo video che mostra una transizione di attività elementi condivisa. È una transizione da un'attività elenco ad un'attività dettaglio.Transizione elemento condiviso Android: la vista dell'eroe viene disegnata davanti agli altri
[link del video non funziona più]
Come si può vedere l'imageview viene disegnato davanti alle schede.
Quello che mi aspetterei è che le schede vengano disegnate nel carattere sull'immagini e si dissolvono durante la transizione (in modo che alla fine dell'animazione siano scomparse).
L'unica cosa che sembra funzionare è impostare windowSharedElementsUseOverlay
su true, ma questo ha altri effetti brutti, quindi sembra non essere un'opzione.
L'approccio più comunemente suggerito è quello di includere le schede nella transizione stessa, ma il problema è che le schede non sono presenti nell'attività di dettaglio in modo che non possano essere condivise.
Codice: comincio l'attività particolare come questo:
options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, pairs);
ActivityCompat.startActivity(activity, subActivity, options.toBundle());
Ti capita di avere un'elevazione impostata da qualche parte nel tuo stile? Uno dei motivi per cui le viste appaiono sopra l'una sopra l'altra è quando viene impostata un'elevazione. –
Ho risolto questo problema scorrendo leggermente il mio 'RecyclerView' verso il basso quando si fa clic sull'elemento, quindi la vista non è ostruita da' ActionBar'/'Toolbar', quindi eseguendo la transizione una volta terminato l'evento di scorrimento. Non ideale, ma sembra bello e fa il lavoro. La complessità era nel determinare quanto scorrere in basso, in base a quanto della vista era ostruita. –
@SimonGuerout ringrazia Simon, ha provato a rimuovere tutte le animazioni, nessun successo: - ((( –