Ho una libreria di disegni e con essa ho una vista personalizzata. Quando è necessario eseguire aggiornamenti, la libreria chiama il metodo invalidate()
della vista. E poi viene chiamato il metodo onDraw()
, e tutto funziona perfettamente.View.invalidate() non sembra chiamare View.onDraw()
Tuttavia, quando aggiungo l'attributo di usesSdkVersion="14"
al mio AndroidManifest.xml file
, questo smette di funzionare. Il metodo onDraw()
della mia vista non viene più richiamato.
MORE INFO: Sembra che quando chiamo invalidate()
come il risultato di un pulsante nella mia app, la vista gli aggiornamenti come previsto. Inoltre, c'è una animazione all'interno della mia libreria che funziona correttamente. Quindi a quanto pare a volte funziona correttamente. Ma la maggior parte delle volte non viene ridisegnata. C'è uno stato in cui può essere inserita una vista personalizzata che farebbe sì che il sistema operativo salti il ridisegno dopo che è stato chiamato lo invalidate()
?
Stai ancora chiamando dal thread dell'interfaccia utente? altrimenti è necessario utilizzare postInvalidate(). – Heinrisch
Ho provato a modificare l'invalidate to postInvalidate solo per verificarlo, e il problema esiste ancora. – Rickster
L'accelerazione hardware è attivata o disattivata? –