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

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

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

最佳答案

在onWindowFocusChanged()中设置属性后,尝试通过在Activity类内维护View对象并调用postInvalidate()。希望能帮助到你!

10-04 12:39