Czy jest wywoływana onSizeChanged()
po dotknięciu przez użytkownika jakiejś części ekranu?Kiedy wywoływana jest metoda onSizeChanged()?
Jestem zdezorientowany co do kolejności, w której są wywoływane onDraw()
, onMeasure()
i onSizeChanged()
.
Czy jest wywoływana onSizeChanged()
po dotknięciu przez użytkownika jakiejś części ekranu?Kiedy wywoływana jest metoda onSizeChanged()?
Jestem zdezorientowany co do kolejności, w której są wywoływane onDraw()
, onMeasure()
i onSizeChanged()
.
Android nie zna rzeczywistej wielkości na początku, musi ją obliczyć. Gdy to zrobisz, onSizeChanged()
powiadomi cię o rzeczywistym rozmiarze.
onSizeChanged()
jest wywoływane po obliczeniu rozmiaru. Wydarzenia nie muszą cały czas pochodzić od użytkowników. W tym przykładzie, gdy Android zmienia rozmiar, wywoływana jest nazwa onSizeChanged()
. To samo z onDraw()
, kiedy widok powinien być narysowany onDraw()
jest wywołany.
onMeasure()
nazywa się automatycznie tuż po wywołaniu measure()
dzięki za odpowiedź. Czy możesz podać przykład instancji, gdy rozmiar się zmieni? – iman453
Zaktualizowałem rozwiązanie. Główne wywołanie metody onSizeChanged() jest wykonywane po utworzeniu widoku, ale przed rysowaniem. W tym momencie system obliczy rozmiar twojego widoku i powiadomi cię przez wywołanie 'onSizeChanged()' –
Jest to znacznie lepsze niż alternatywa ViewTreeObserver. – Dmacpro