2010-10-16 9 views
22

Ich muss die absoluten Positionen einiger ImageViews erfassen, um sie als Drop-Ziele zu verwenden. Ich kann anscheinend nicht finden, welches Ereignis ich brauche, um meinen Code zu setzen, um den Bildschirm zu lesen und die linken(), oberen() .. Positionen zu erhalten. Ich möchte nicht die Inflation jeder einzelnen Ansicht überwachen. Es muss eine Art onScreenFinsihed Art von Ereignis geben, aber ich kann es nicht finden. onMeasure und onDraw scheinen zu Beginn ihrer Arbeit zu feuern, ich muss wissen, wann sie fertig sind. TIA.Welches Ereignis wird ausgelöst, nachdem alle Ansichten vollständig gezeichnet wurden?

Antwort

30

Es gibt kein solches Ereignis. Sie können einfach eine Meldung/Runnable in der UI-Ereigniswarteschlange am Anfang einer Zeichnungsfolge senden, damit diese Nachricht/Runnable nach dem Zeichnen ausgeführt wird (siehe beispielsweise View.post (Runnable)). GetLeft/getTop gibt außerdem die Nachricht zurück Korrekter Wert nach Messung und Layout, Sie müssen nicht auf das Ende der Zeichnung warten, um sie zu verwenden.