Получить местоположение imageview

Привет, поэтому я пытаюсь получить местоположение imageview в android с помощью

xPosition = view.getLeft();
yPosition = view.getTop();

Но он продолжает возвращать 0 независимо от того, где imageview случается быть. То же самое происходит и при использовании

view.getLocationOnScreen(int[] location);

У кого-нибудь есть идеи, почему это может быть?

1 ответ

  1. Эти методы можно использовать после завершения onCreate. Один из способов сделать это-это внутри метода onCreate это:

    view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
    
                //do your thnig here.....
    
                if (Build.VERSION.SDK_INT < 16) { 
                    view.getViewTreeObserver().removeGlobalOnLayoutListener(this);                                                                                        
                } 
                else { 
                    view.getViewTreeObserver().removeOnGlobalLayoutListener(this);  
                } 
            }
        });
    

    GlobalLayoutListener будет уведомлен при построении макета и запуске метода onGlobalLayout. Обязательно удалите globalLayoutListener после того, как вы сделаете то, что вы хотите сделать.