Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getLocationOnScreen() in onCreate() just returns zeroes

Tags:

android

Calling getLocationOnScreen() on an ImageView (or other View) in a response to a button click gives correct values.

But when calling getLocationOnScreen() from Activity::onCreate(), I only get [0, 0]. How can I fix this?

Is onCreate() too early for all calculations to be done? Is there a later better place to hook to start animations?

like image 314
Jonny Avatar asked Nov 06 '12 03:11

Jonny


1 Answers

It's too early to check for getLocationOnScreen() in onCreate(). The better place is at view level (if you are using custom views), is at onLayout(). Only here, the view's size and position are calculated. In case, you aren't creating custom views, you could obtain it in activity level at onWindowFocusChanged() (with the activity having the focus).

like image 119
sriramramani Avatar answered Oct 24 '22 18:10

sriramramani