Android `getLeft()`在`onWindowFocusChanged()中返回零`
我有一个单独的类Android `getLeft()`在`onWindowFocusChanged()中返回零`,android,android-layout,android-xml,Android,Android Layout,Android Xml,我有一个单独的类Answer,它扩展了ImageView。此对象通过编程方式添加到容器视图,然后在onWindowFocusChanged()中调用位置初始化方法-此方法设置正确的边距和布局参数,并打开可见性。然后我通过调用getLeft()尝试获取答案的初始X位置。无论是从Answers类this.getLeft()内调用,还是从main activityanswer\u object1.getLeft()调用,它仍然返回零 为什么呢 如果我通过XML添加图像视图并在onWindowFocus
Answer
,它扩展了ImageView
。此对象通过编程方式添加到容器视图,然后在onWindowFocusChanged()
中调用位置初始化方法-此方法设置正确的边距和布局参数,并打开可见性。然后我通过调用getLeft()
尝试获取答案的初始X位置。无论是从Answers类this.getLeft()
内调用,还是从main activityanswer\u object1.getLeft()
调用,它仍然返回零
为什么呢
如果我通过XML添加图像视图并在onWindowFocusChanged()
中调用“getLeft()”,它将返回正确的值。getLeft()
将仅在布局步骤完成后返回实际值,并且将调用答案的onLayout
。因此,要记录视图的初始位置,最好在onLayout
中记录
现在说到onWindowFocusChanged()
-文档没有承诺在onLayout
之前还是之后调用此方法,因此它不是记录视图初始位置的最佳位置。getLeft()
将仅在布局步骤完成后返回实际值,并且将调用答案的onLayout
。因此,要记录视图的初始位置,最好在onLayout
中记录
现在说到onWindowFocusChanged()
——文档没有承诺在onLayout
之前还是之后调用此方法,因此它不是记录视图初始位置的最佳位置