我有一个单独的类Answer
,它扩展了ImageView
。此对象以编程方式添加到容器视图中,然后在onWindowFocusChanged()
中调用位置初始化方法 - 此方法设置正确的边距和布局参数并打开可见性。然后我通过调用getLeft()
来尝试获得Answer的初始X位置。无论是从Answers类this.getLeft()
内调用还是从主活动answer_object1.getLeft()
调用它,它仍然返回零。
为什么?
如果我通过XML添加图像视图并在onWindowFocusChanged()
中调用'getLeft()',则返回正确的值。
答案 0 :(得分:2)
getLeft()
仅在布局步骤完成后才会返回实际值,并且会调用onLayout
的{{1}}。因此,要记录视图的初始位置,最好在Answer
中执行此操作。
现在谈到onLayout
- 文档没有承诺是否会在onWindowFocusChanged()
之前或之后调用此方法,因此它不是记录视图初始位置的最佳位置。