Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android `getLeft()`在`onWindowFocusChanged()中返回零`_Android_Android Layout_Android Xml - Fatal编程技术网

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 activity
answer\u object1.getLeft()
调用,它仍然返回零

为什么呢

如果我通过XML添加图像视图并在
onWindowFocusChanged()
中调用“getLeft()”,它将返回正确的值。

getLeft()
将仅在布局步骤完成后返回实际值,并且将调用
答案的
onLayout
。因此,要记录视图的初始位置,最好在
onLayout
中记录

现在说到
onWindowFocusChanged()
-文档没有承诺在
onLayout
之前还是之后调用此方法,因此它不是记录视图初始位置的最佳位置。

getLeft()
将仅在布局步骤完成后返回实际值,并且将调用
答案的
onLayout
。因此,要记录视图的初始位置,最好在
onLayout
中记录

现在说到
onWindowFocusChanged()
——文档没有承诺在
onLayout
之前还是之后调用此方法,因此它不是记录视图初始位置的最佳位置