OnWindowFocusChanged与OnCreate用于分配对象属性

时间:2018-07-12 14:17:34

标签: java android

我的问题围绕onWindowFocusChanged方法。我知道,作为最佳实践,您应该在onCreate方法中为对象充气。

我想知道的是:在onCreate方法期间,诸如ImageViews之类的对象未完全呈现。因此,您可以使用onWindowFocusChanged,一旦活动渲染完成,Android文档便会调用该onWindowFocusChanged。我有ImageView对象,它们需要获取X和Y的位置,并且(由于屏幕尺寸的变化)除非使用硬编码数字,否则我将不知道它们在屏幕上的确切位置,我不想这样做。做。然后,我将基于这些X和Y数字为其他ImageView分配边距。但是,如果我必须等到onWindowFocusChanged才能获取X和Y,那么在onCreate方法中设置这些数字对我没有任何好处。

所以我的问题是-我仍然可以在onWindowFocusChanged内设置ImageView的属性并将它们重新呈现为更新后的属性,还是因为已经渲染了属性值而将其锁定?

1 个答案:

答案 0 :(得分:1)

在onWindowFocusChanged()内设置属性后,尝试将View对象维护在Activity类内,并调用postInvalidate()。希望对您有帮助!