Ich habe eine Zeichnungsbibliothek, und damit habe ich eine benutzerdefinierte Ansicht. Wenn Aktualisierungen durchgeführt werden müssen, ruft die Bibliothek die Methode invalidate()
der Ansicht auf. Und dann wird die onDraw()
Methode aufgerufen, und alles funktioniert gut. Wenn ich jedoch das Attribut usesSdkVersion="14"
zu meinem AndroidManifest.xml file
hinzufüge, funktioniert das nicht mehr. Nicht mehr wird die onDraw()
Methode meiner Ansicht mehr aufgerufen.View.invalidate() scheint View.onDraw() nicht aufzurufen
MORE INFO: Es scheint, dass, wenn ich invalidate()
als Ergebnis einer Schaltfläche Push in meiner App aufrufen, wird die Ansicht wie erwartet aktualisiert. Außerdem gibt es eine Animation in meiner Bibliothek, die korrekt funktioniert. So scheint es manchmal manchmal richtig zu funktionieren. Aber die meiste Zeit wird es nicht neu gezeichnet. Gibt es einen Zustand, in dem sich eine benutzerdefinierte Ansicht befinden könnte, die dazu führen würde, dass das Betriebssystem es erneut erstellt, nachdem invalidate()
aufgerufen wurde?
Rufen Sie es noch über den UI-Thread an? Andernfalls müssen Sie postInvalidate() verwenden. – Heinrisch
Ich habe versucht, das Invalidate zu PostInvalidate zu ändern, nur um das zu überprüfen, und das Problem besteht weiterhin. – Rickster
Ist die Hardwarebeschleunigung ein- oder ausgeschaltet? –