getRight,getLeft,getTop返回零

我正在使用以下代码。 但是所有的方法都返回零值。 我知道要得到视图的坐标,我们应该绘制视图。 这就是为什么我使用onResume方法中的代码,但仍然无法正常工作。 任何想法?

@Override public void onResume(){ super.onResume(); System.out.println("Onresume"); System.out.println("tab1 - left" + btn_Tab7 .getLeft()); System.out.println("tab1 - Top" + btn_Tab7.getTop()); System.out.println("tab1 - right" + btn_Tab7.getRight()); System.out.println("tab1 - bottom" + btn_Tab7.getBottom()); } 

Solutions Collecting From Web of "getRight,getLeft,getTop返回零"

onResume调用getLeft,getRight过早…在onWindowFocusChanged

 @Override public void onWindowFocusChanged (boolean hasFocus){ super.onWindowFocusChanged(hasFocus); if(hasFocus){ System.out.println("onWindowFocusChanged"); System.out.println("tab1 - left" + btn_Tab7 .getLeft()); System.out.println("tab1 - Top" + btn_Tab7.getTop()); System.out.println("tab1 - right" + btn_Tab7.getRight()); System.out.println("tab1 - bottom" + btn_Tab7.getBottom()); } } 

来自onResume的文档:

请记住, onResume不是您的活动对用户可见的最佳指标 ; 系统窗口如键盘可能在前面。 使用onWindowFocusChanged(boolean)可以确定您的活动对用户是可见的(例如,恢复游戏)。