Ho un thread in background che aggiorna l'interfaccia utente della mia attività, dopo lo onCreate()
. Può aggiungere layout o modificare le dimensioni di altri.Come sapere quando un'attività termina un passaggio di layout?
Voglio semplicemente rilevare quando il passaggio di layout è terminato nella mia attività, per poter aggiornare manualmente le posizioni di altre viste che dipendono direttamente dai layout che erano appena aggiunti o modificati.
Per ora, mi basta usare un Handler
con un postDelayed runnable
che fa il lavoro, dopo un piccolo ritardo, intorno 50-100 ms dopo le modifs che fa scattare il requestLayout()
.
Funziona, ma possiamo ovviamente vedere il ritardo. Mi piacerebbe fare il lavoro il prima possibile. In un codice di visualizzazione è semplice rilevare il passaggio di misura, ma non trovo come risolverlo direttamente nell'attività.
Anche se questo è corretto, voglio aggiungere che questo può essere chiamato due volte o anche più spesso in alcuni layout, dove il processo di misurazione sarà chiamato in modo ricorsivo (pesi ecc.). – JacksOnF1re