我正在使用以下代码。但是所有方法都返回零值。我知道要获取视图的坐标,我们应该绘制视图。这就是为什么我在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());
}
答案 0 :(得分:8)
在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)来确定 您的活动对用户可见(例如,恢复 游戏)。